texto studio sim samsung pasar para otro mensajes los guardar enviar copiar como celular aplicacion android sms

android - studio - guardar sms en sim



¿Cómo guardar SMS en la bandeja de entrada en Android? (5)

He escrito el siguiente código para enviar mensajes SMS.

SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage(destAddr, null, mMessageText, il, null);

Pero esto no se está actualizando en mi Bandeja de entrada, necesito guardar el mismo mensaje en la Bandeja de entrada, ¿o hay alguna forma de invocar una aplicación de SMS nativa para enviar SMS?


Este código funcionará para todas las versiones de Android, incluido el kitkat anterior (19)

public boolean saveSms(String phoneNumber, String message, String readState, String time, String folderName) { boolean ret = false; try { ContentValues values = new ContentValues(); values.put("address", phoneNumber); values.put("body", message); values.put("read", readState); //"0" for have not read sms and "1" for have read sms values.put("date", time); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { Uri uri = Telephony.Sms.Sent.CONTENT_URI; if(folderName.equals("inbox")){ uri = Telephony.Sms.Inbox.CONTENT_URI; } mActivity.getContentResolver().insert(uri, values); } else { mActivity.getContentResolver().insert(Uri.parse("content://sms/" + folderName), values); } ret = true; } catch (Exception ex) { ex.printStackTrace(); ret = false; } return ret; }

Como llamar

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { final String myPackageName = getPackageName(); if (!Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName)) { Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, myPackageName); startActivityForResult(intent, 1); }else { saveSms("111111", "mmmmssssggggg", "0", "", "inbox"); } }else { saveSms("111111", "mmmmssssggggg", "0", "", "inbox"); }

onActivityResult

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 1) { if (resultCode == RESULT_OK) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { final String myPackageName = getPackageName(); if (Telephony.Sms.getDefaultSmsPackage(mActivity).equals(myPackageName)) { //Write to the default sms app saveSms("111111", "mmmmssssggggg", "0", "", "inbox"); } } } } }

Para obtener más detalles o una aplicación de muestra, siga el enlace: http://wisdomitsol.com/blog/android/sms/how-to-programmatically-save-sms-to-inbox-or-sent-in-android


Puede usar el proveedor de contenido de sms para leer y escribir mensajes de sms:

ContentValues values = new ContentValues(); values.put("address", "123456789"); values.put("body", "foo bar"); getContentResolver().insert(Uri.parse("content://sms/sent"), values);

No sé por qué querrías escribir un mensaje que envíes a la bandeja de entrada, pero si eso es lo que quieres, simplemente cambia el uri anterior a "content://sms/inbox" .

Alternativamente, puede entregarlo a una aplicación de mensajería iniciando una actividad con una intención similar a la siguiente:

Intent sendIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("sms://")); sendIntent.putExtra("address", "123456789"); sendIntent.putExtra("sms_body", "foo bar"); startActivity(sendIntent);

Editar: Sin embargo, el proveedor de contenido sms:// no forma parte del SDK, por lo que recomendamos encarecidamente que no se use un código como este en las aplicaciones públicas por varias razones .


Si quieres poner manualmente algunos SMS en tu bandeja de entrada con un nombre de remitente,

ContentValues values = new ContentValues(); values.put("address", "+923359110795");//sender name values.put("body", "this is my text"); getContentResolver().insert(Uri.parse("content://sms/inbox"), values);

también agregue estos en manifiesto.

<uses-permission android:name="android.permission.READ_SMS"/> <uses-permission android:name="android.permission.WRITE_SMS"/>

Ahora este código agregará sms a la bandeja de entrada con un nombre de remitente definido, para que pueda manejar fácilmente su problema con esta solución,


ContentValues values = new ContentValues(); values.put("address", phoneNumber); values.put("body", multimessage); values.put("read", 1); //"0" for have not read sms and "1" for have read sms Uri uri = Telephony.Sms.Sent.CONTENT_URI; Activity ctx = this.cordova.getActivity(); ctx.getContentResolver().insert(uri, values);


Intent sendIntent = new Intent(Intent.ACTION_VIEW); sendIntent.putExtra("sms_body", "Content of the SMS goes here..."); sendIntent.setType("vnd.android-dir/mms-sms"); startActivity(sendIntent);

invocar una aplicación de SMS nativa con contenido