Java 向消息传递应用程序发送sms意向
我的应用程序的目标是根据一些参数过滤收到的Java 向消息传递应用程序发送sms意向,java,android,android-intent,sms,smsmanager,Java,Android,Android Intent,Sms,Smsmanager,我的应用程序的目标是根据一些参数过滤收到的SMS,并根据这些参数的有效性来删除或接受SMS 我意识到不再可能(因为Android KitKat)有一个这样的隐形应用程序,因此我决定将其作为默认应用程序 我目前很难将意向(通过我应用程序中的onReceive功能接收,通过BroadcastReceiver)发送到股票SMS应用程序(这只允许接收某些SMS) 我发现使用这段代码: Telephony.Sms.getDefaultSmsPackage(getApplicationContext());
SMS
,并根据这些参数的有效性来删除或接受SMS
我意识到不再可能(因为Android KitKat
)有一个这样的隐形应用程序,因此我决定将其作为默认应用程序
我目前很难将意向(通过我应用程序中的onReceive
功能接收,通过BroadcastReceiver
)发送到股票SMS
应用程序(这只允许接收某些SMS
)
我发现使用这段代码:
Telephony.Sms.getDefaultSmsPackage(getApplicationContext());
我能够获得用于股票短信应用的打包(com.android.mms)
。通过一些研究,我发现transaction.SmsReceiver
就是我要找的类
但是,我现在无法将意图发送到此特定应用程序。
我得到以下错误:
W/System.err: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.android.mms.transaction/com.android.mms.transaction.SmsReceiver};
这可能对你有帮助
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);
首先,不要使用
startActivity()
将广播发送到BroadcastReceiver
。第二,你不能做你想做的事。如果你是默认的,你会处理一切。你不能只传递你不想编码的函数。@MikeM。所以没有办法绕过这个?最终,我唯一想做的就是充当从特定号码中提取的短信的保险库,因此我不能让它们进入正常的收件箱。不。自从KitKat之后,真的没有任何专门的短信屏蔽器了。只有默认设置可以阻止,但如果您是默认设置,您需要负责很多事情,包括发送和接收短信和彩信,处理它们在提供商中的存储,等等。
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);