Доказательство КОНЦЕПЦИИ
Список вызовов SMS
Intent intent = new Intent("android.intent.action.MAIN");
intent.setComponent(
new ComponentName("com.android.mms","com.android.mms.ui.ConversationList"));
startActivity(intent);
READ SMS
cursor c= getContentResolver().query(uri, null, null ,null,null);
startManagingCursor(c);
c.moveToFirst();
String body = c.getString(c.getColumnIndexOrThrow("body")).toString();
String number = c.getString(c.getColumnIndexOrThrow("address")).toString();
c.close();
Toast.makeText(getApplicationContext(), number, Toast.LENGTH_LONG).show();
Написать SMS
ContentValues values = new ContentValues();
values.put("address", "SENDER");
values.put("body", "foo bar");
getContentResolver().insert(Uri.parse("content://sms/inbox"), values);
МАНИФЕСТ
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
ISSUE После этого нет события, поэтому андроид не знает, есть ли какое-то новое сообщение.
Может быть, вы можете попробовать getContext(). GetContentResolver(). NotifyChange (uri, null); Просто идея. – Mertuarez
Да, просто создайте свой собственный класс, чтобы запустить приложение sms, и отобразите уведомление пользователю. –
этот способ имеет проблему. когда я открываю реальное уведомление sms, приложение sms показывает «непрочитанный» статус. но если sms подделан. он читается. – fazhang