如何在双卡设备的通话/短信接收器中获取 simId?
我实现了用于挂钩来电和短信的接口 BroadcastReceiver。我想要获取来电或短信的 simId。怎么做呢?
我的接收器呼叫和短信代码:
public class SmsAndCallReceiver extends BroadcastReceiver {
public void _onReceive(Context context, Intent intent) {
// here I define incoming call or sms
// here I get simId !!!
}
}
我还在 AndroidManifest.xml 中注册了类:
<receiver android:name=".receivers.SmsAndCallReceiver" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
并且我还添加了权限:
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
我看到了此选项,但它在我的设备上不起作用:
public class MyCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String callingSIM = "";
callingSIM = intent.getExtras().getInt("simId", -1);
if(callingSIM == "0"){
//SIM1
}
else if(callingSIM =="1"){
//SIM2
}
}
}
我的设备: Samsung SM -J260F
版本 android: 8.1.0 (API 27)
根设备: 否
I implemented interface BroadcastReceiver for hook incoming call and sms. I want get simId to which the incoming call or sms comes. How to do it?
My code for receiver calls and sms:
public class SmsAndCallReceiver extends BroadcastReceiver {
public void _onReceive(Context context, Intent intent) {
// here I define incoming call or sms
// here I get simId !!!
}
}
I also registered class in AndroidManifest.xml:
<receiver android:name=".receivers.SmsAndCallReceiver" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
And also I add permissions:
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS"/>
I saw this option, but it doesn't work on my device:
public class MyCallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String callingSIM = "";
callingSIM = intent.getExtras().getInt("simId", -1);
if(callingSIM == "0"){
//SIM1
}
else if(callingSIM =="1"){
//SIM2
}
}
}
My device: Samsung SM-J260F
Version android: 8.1.0 (API 27)
Root device: no
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论