android:android.provider.Telephony.SMS_在哪里收到?
我正在编写一个需要接收短信的应用程序,每个人都在代码中使用“android.provider.Telephony.sms\u RECEIVED\u ACTION”意图操作,但看起来API级别17不再支持它了! 它现在在哪里?我也没有在“android.telephony”类中找到收到的短信!android:android.provider.Telephony.SMS_在哪里收到?,android,Android,我正在编写一个需要接收短信的应用程序,每个人都在代码中使用“android.provider.Telephony.sms\u RECEIVED\u ACTION”意图操作,但看起来API级别17不再支持它了! 它现在在哪里?我也没有在“android.telephony”类中找到收到的短信! 请有人告诉我,我完全糊涂了。我应该使用旧的api吗?android。telephony类提供了有关api级别1中引入的手机状态的信息。有关更多详细信息,请阅读此 android.telephony.smsm
请有人告诉我,我完全糊涂了。我应该使用旧的api吗?
android。telephony
类提供了有关api级别1中引入的手机状态的信息。有关更多详细信息,请阅读此
android.telephony.smsmsmanager
用于从设备收件箱获取消息信息。你可以在这里看看
没有迹象表明它们在api级别17中被弃用。我们需要阅读本文档 从Android 4.4开始,您应该停止收听SMS_RECEIVED_操作广播,您可以在运行时通过检查平台版本,然后使用PackageManager.setComponentEnabledSetting()禁用SMS_RECEIVED_操作的广播接收器。但是,如果你的应用程序只需要阅读特殊的短信,例如执行电话号码验证,你可以继续收听该广播。请注意,从Android 4.4开始,您的应用程序中止SMS_RECEIVED_动作广播的任何尝试都将被忽略,因此所有感兴趣的应用程序都有机会接收
我想我们必须为KitKat做准备。这是一件令人烦恼的事 在API 19(4.4-KitKat)之前,电话类没有记录在案的API。上课缺席并不意味着你所做的事情不起作用。您需要请求此权限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
以下是grepcode.com对源代码的引用:
请注意类声明前面的“@hide”——它在那里,但不向开发人员公开。这就是为什么它在ADT中无法识别。您可以在代码中使用
Telephony.Sms.Intents.Sms\u RECEIVED\u ACTION
以下是我的工作代码:
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
}
}
}
您必须导入
导入android.provider.Telephony代码>你怎么会认为它不受欢迎?谢谢你提供的信息。我说android.provider.telephony被替换了,telephony.SMS\u RECEIVED\u动作消失了!我想知道在哪里可以找到它
public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
}
}
}