Speichern / Erstellen von MMS im Posteingang Android

Ich arbeite an einer Anwendung, die in der Lage sein muss, eine neue MMS im Posteingang oder gesendete Ordner zu speichern / zu erstellen, aber ich kann nicht herausfinden, den Weg.

Ich habe den folgenden Code ausprobiert, aber es gab mir Ausnahme:

  • Android Studio + Volley = NoClassDefFound?
  • Wie man interne Speicherdatei mit Gmail Client teilt
  • Wie man Crash-Log mit android ndk in cocos2d-x überprüft
  • Post-Compilation Entfernung von Annotationen aus Byte-Code
  • Install android sdk mit Kommandozeilen linux
  • Android-Anwendungen mit Xcode erstellen?
  • ContentValues values = new ContentValues(); values.put("address", "xxxxxxxxxxx"); values.put("body", "body 3"); values.put("read", "0"); getContentResolver().insert(Uri.parse("content://mms/inbox"), values); 

    Und die Ausnahme ist:

     ERROR/Database(118): Error inserting read=0 body=body 3 msg_box=1 date=1306153444 address=xxxxxxxxxxx ERROR/Database(118): android.database.sqlite.SQLiteException: table pdu has no column named body: , while compiling: INSERT INTO pdu(read, body, msg_box, date, address) VALUES(?, ?, ?, ?, ?); ERROR/Database(118): at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) ERROR/Database(118): at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91) ERROR/Database(118): at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64) ERROR/Database(118): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80) ERROR/Database(118): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:36) ERROR/Database(118): at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1145) ERROR/Database(118): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1536) ERROR/Database(118): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1410) ERROR/Database(118): at com.android.providers.telephony.MmsProvider.insert(MmsProvider.java:347) ERROR/Database(118): at android.content.ContentProvider$Transport.insert(ContentProvider.java:174) ERROR/Database(118): at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:146) ERROR/Database(118): at android.os.Binder.execTransact(Binder.java:288) ERROR/Database(118): at dalvik.system.NativeStart.run(Native Method) ERROR/MmsProvider(118): MmsProvider.insert: failed! read=0 body=body 3 msg_box=1 date=1306153444 address=xxxxxxxxxxx 

    UDPATE: Exception entfernt durch Entfernen der Zeile: values.put("body","body 3") Aber ich kann keine mms in Nachrichten sehen.

  • Android: Set alpha on button auf klicken. Vorzugsweise nur xml
  • Umschalten zwischen Netzwerk- und GPS-Provider
  • Es ist notwendig, Firebase Analytics in jeder Aktivität zu initialisieren?
  • Machen Sie transparente Hintergrund der Android-Symbole in Eclipse
  • Wie kann ich feststellen, ob eine meiner Aktivitäten im Vordergrund steht
  • Warum nicht Standard-Android-Emulatoren?
  • 3 Solutions collect form web for “Speichern / Erstellen von MMS im Posteingang Android”

    Ich hatte das gleiche Problem. Allerdings habe ich erfolgreich eine MMS erstellt und wiederhergestellt. Es ist im Grunde umgekehrt Manipulation der Datenbank. Ich hoffe, Sie können ein MMS aus der Datenbank bekommen, richtig? Sie müssen nur passende Werte in Datenbanktabellen setzen. Sie können Informationen über Datenbanktabellen in mmssms.db erhalten. Sobald Sie die mmssms.db verstehen, ist es sehr einfach, eine MMS einzufügen.

    Der Körper der MMS wird im content://mms/part/ gespeichert content://mms/part/ . Sehen Sie sich diesen Code an, wie Sie davon lesen können, aber denken Sie daran, dass all dies ist undokumentiert, nicht unterstützt und wahrscheinlich ohne vorherige Ankündigung ändern.

    Zuerst schaffst du einen Bildschirm, den du als den mms-Bildschirm verwenden willst. Dann nach, wie Sie abgeschlossen, um es versuchen, dies unter Code zu senden, dass mms an andere Person, die Sie wollen. Hier erklärst du zuerst eine btn_email-Taste auf deinem Projekt.

    Btn_email = (Schaltfläche) findViewById (R.id.btn_email);

    Dann schreibe das onclickevent auf diesen Knopf, der in der Lage sein kann, die mms zu einer anderen Person zu schicken.

    MMS-Code senden:

    Btn_email.setOnClickListener (new View.OnClickListener () {@Override public void onClick (Ansicht v) {// TODO Auto-generierte Methode stub System.out.println ("die E-Mail-Taste wird gerade gedrückt ..");

      Intent sendIntent = new Intent(Intent.ACTION_SEND); //Mime type of the attachment (or) u can use sendIntent.setType("*/*") sendIntent.setType("image/jpeg"); //Subject for the message or Email sendIntent.putExtra(Intent.EXTRA_SUBJECT, "My Picture"); //Full Path to the attachment sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://mnt/"+mUrl)); //Use a chooser to decide whether email or mms startActivity(Intent.createChooser(sendIntent, "Email:")); } }); 

    Hier ist der Code, der die mms an andere Person schicken wird, die Ihren sdcard Pfad bildet. Dieser Code mit dem Absicht Code ist die Android-Standard-E-Mail senden Bildschirm wird verwenden.

    Auf diese Weise können sie die mms an andere person senden.

    Jetzt, um die partikuläre mms zu retten, die du gesendet hast, dass andere Person, wie du diesen Bildschirm entwickelst, den du dir erschaffen hast, erfassst du nur den ganzen Bildschirm … und schreibe in sd Karte wie ..

    z.B:

    Btn_save = (Button) findViewById (R.id.btn_save);

      btn_save.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub System.out.println("the save button is just pressed.."); saveImageToSD(); Toast.makeText(Create_Screen_Birthday.this,"Image successfully saved",Toast.LENGTH_LONG).show(); } }); 

    Protected void saveImageToSD () {// TODO Auto-generierte Methode Stub

      System.out.println("NOW you are on the saveimage to sd card method called block.."); try { //String fileName = "myBitmapImage2.png"; int Current_Hour,Current_Minute,Current_Second; RelativeLayout settext_relative; settext_relative = (RelativeLayout)findViewById(R.id.settext_relative); final Calendar c = Calendar.getInstance(); Current_Hour = c.get(Calendar.HOUR); Current_Minute = c.get(Calendar.MINUTE); Current_Second = c.get(Calendar.SECOND); System.out.println("the value of Current_Year = "+Current_Hour); System.out.println("the value of Current_Month = "+Current_Minute); System.out.println("the value of Current_Date = "+Current_Second); fileName = "Birthday_Card"+"_"+Current_Hour+"_"+Current_Minute+"_"+Current_Second+".png"; String path = "/sdcard/E-card/Birthday_Cards/"; newfileName = path + fileName; System.out.println("the value of newfilename = "+newfileName); System.out.println("The Filename on save card on sdcard = "+fileName); FileOutputStream outStream = null; File file = new File(path); file.mkdirs(); File outputFile = new File(file, fileName); outputFile.createNewFile(); outStream = new FileOutputStream(outputFile); BufferedOutputStream bos = new BufferedOutputStream(outStream); RL.setDrawingCacheEnabled(true); bitmap = Bitmap.createBitmap( RL.getDrawingCache()); bitmap.compress(Bitmap.CompressFormat.PNG, 100,bos); RL.setDrawingCacheEnabled(false); bos.flush(); bos.close(); btn_preview.setVisibility(View.VISIBLE); btn_save.setVisibility(View.GONE); } catch(Exception ex) { ex.printStackTrace(); } } 

    Dieser oben genannte Code speichert die des Bildschirms, den du gesendet hast, dann einfach einfach nur zugreifen oder dieses Bild von deinem sdcard-spezifischen Pfadnamen abrufen

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.