我有一个双卡android手机。我正在使用自定义广播接收器,它可以毫无问题地读取传入的消息。我想知道是否有办法找出哪个sim收到了这条消息。广播接收器双卡
Q
广播接收器双卡
4
A
回答
1
您可以使用TelephonyManager获取活动SIM卡的信息。例如,它是序列号。
TelephonyManager telephoneMgr = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
String simSerial = telephoneMgr.getSimSerialNumber();
你也可以得到line1Number,如果你的网络运营商已经摆在那里你的号码,你可以把它比作你就得到了数>在短信领域。
String phoneNumber = telephoneMgr.getLine1Number();
希望它可以帮助
0
我有一些很艰难的时期这个问题,最后我找到了一个解决方案,虽然我测试了它上面仅API级别22
你必须看看在收到的意图中的额外信息。在我的情况下,有意义的额外Bundle中有两个键是有用的:“slot”和“subscription”。
这里是例子:
public class IncomingSms extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
// Retrieves a map of extended data from the intent.
Bundle bundle = intent.getExtras();
int slot = bundle.getInt("slot", -1);
int sub = bundle.getInt("subscription", -1);
/*
Handle the sim info
*/
}
}
我没有找到关于此文档所以这可能是设备/制造商特有的,我可以想像,密钥是diferent或类似的东西。 您可以通过倾销包的密钥集验证这一点:
Set<string> keyset = bundle.keySet();
相关问题
- 1. 安卓广播接收器和双卡
- 2. 广播接收器
- 3. 广播接收器
- 4. 广播接收器的问题,注册的广播接收器
- 5. 广播接收器的的onReceive()未能接收由另一广播接收器
- 6. 接收来自广播接收器的广播意图错误
- 7. 广播和接收额外的双打
- 8. SMS广播接收器多次接收?
- 9. 广播接收器不能接收
- 10. 广播接收器接收不到
- 11. 广播接收
- 12. 广播接收
- 13. 注销广播接收器
- 14. Android广播接收器
- 15. 从广播接收器
- 16. 广播接收器和phonestatelistener
- 17. Android MMS广播接收器
- 18. GCM广播接收器
- 19. 从广播接收器
- 20. Android广播接收器
- 21. 使用广播接收器
- 22. 永恒广播接收器
- 23. Android。广播接收器
- 24. 关于广播接收器
- 25. 广播接收器不叫
- 26. 广播接收器与sendMultiPartTextMessage
- 27. 广播接收器问题
- 28. startActivity()从广播接收器
- 29. 开始广播接收器
- 30. 广播接收器和ContentResolver
首先希望!会试一试。谢谢@marcel –