向短信应用发送短信意图

时间:2017-03-23 11:43:42

标签: java android android-intent sms smsmanager

我的申请的目的是根据某些参数过滤收到的SMS's,并根据放弃或接受SMS的有效性进行过滤。

我意识到它已经不再可能(因为Android KitKat)有一个秘密的应用程序来执行此操作,因此我决定将其设为默认应用程序。

我目前在发送一个意图(通过我的应用中的onReceive功能,通过BroadcastReceiver)通过SMS发送到库存SMS应用时遇到了很多麻烦只收到某些Telephony.Sms.getDefaultSmsPackage(getApplicationContext());

我发现使用这段代码:

(com.android.mms)

我能够获得用于库存短信应用的已使用的已打包transaction.SmsReceiver。通过一些研究,我发现是我正在寻找的课程。

但是,我现在无法将意图发送到此特定应用。

Intent redirectIntent = intent;
redirectIntent.setClassName("com.android.mms.transaction","com.android.mms.transaction.SmsReceiver");
redirectIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(redirectIntent);

Intent redirectIntent = intent; redirectIntent.setClassName("com.android.mms.transaction","com.android.mms.transaction.SmsReceiver"); redirectIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(redirectIntent);

我收到以下错误:

W/System.err: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.mms.transaction/com.android.mms.transaction.SmsReceiver}; 

1 个答案:

答案 0 :(得分:0)

这可能会对你有所帮助

Intent smsIntent = new Intent(Intent.ACTION_VIEW);
smsIntent.setType("vnd.android-dir/mms-sms");
smsIntent.putExtra("address", "12125551212");
smsIntent.putExtra("sms_body","Body of Message");
startActivity(smsIntent);