我试图使用以下代码以编程方式在活动上注册一个BroadcastReceiver
br=new BroadcastReceiver() {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
private static final String TAG = "cyb";
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "ok", Toast.LENGTH_LONG).show();
Log.e(TAG, "Intent recieved: " + intent.getAction());
if (intent.getAction().equals(SMS_RECEIVED)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[])bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
}
if (messages.length > -1) {
Log.e(TAG, "Message recieved: " + messages[0].getMessageBody());
}
}
}
}
};
IntentFilter inf=new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
inf.setPriority(999);
registerReceiver(br, inf);此外,我还向AndroidManifest.xml添加了此权限
<uses-permission android:name="android.permission.RECEIVE_SMS"/>我的应用程序在收到新短信时不会收到任何通知,我正在使用Android4.2与Hangout和GoSMS
更新2:
卸载GOSMS后是working.But,我想接收SMS_RECEIVED意向动作,即使用户安装了GoSMS应用程序或not.Is也有可能吗?有其他解决办法吗?
发布于 2014-02-25 09:25:01
您还需要实现MMS接收器+ HeadlessSmsSendService +ComposeSmsActivity
详细信息,请参阅链接:http://android-developers.blogspot.fr/2013/10/getting-your-sms-apps-ready-for-kitkat.html
https://stackoverflow.com/questions/21660151
复制相似问题