我有一個雙卡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 –