Dieser Code wird für alle Android-Versionen oben kitkat einschließlich (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;
}
Wie Aufruf
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 0
@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");
}
}
}
}
}
Für weitere Einzelheiten oder Beispiel-App folgendem Link: http://wisdomitsol.com/blog/android/sms/how-to-programmatically-save-sms-to-inbox-or-sent-in-android
@ Lo'oris, @ereOn: bedeutet Programmatically, dass Sie es "durch den Code" machen wollen. Es ist ein vollkommen gültiges Wort, das in den meisten Wörterbüchern gefunden wird, die in den letzten Jahren gedruckt worden sind. Es gibt Zeiten, in denen es notwendig ist, zwischen den gelegentlichen Fragen zu unterscheiden, die wir von einem Benutzer erhalten, der * nicht * versucht, etwas durch Code zu tun. Diese Fragen gehören natürlich zu Super User statt hier. Das Problem besteht darin, dass einige Aufgaben wesentlich einfacher und viel häufiger erledigt werden können * ohne * eine einzige Codezeile zu schreiben. Die Klärung hält Menschen davon ab, diese offensichtlichen Antworten zu geben. –