我正在開發一款應用程序,其中需要用戶的SIM卡的詳細信息 他的電話號碼,imei號碼和運營商。到目前爲止,我已經實現了他的IMEI號碼this answer,是他的設備單卡或雙卡。 如何獲取他的SIM卡號和兩個連接的運營商名稱。獲取雙卡android手機的運營商詳細信息
0
A
回答
0
試試這個,對我的作品:
TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String carrierName = manager.getNetworkOperatorName();
0
試一下:
private List<String> getNetworkOperator(final Context context) {
// Get System TELEPHONY service reference
List<String> carrierNames = new ArrayList<>();
try {
final String permission = Manifest.permission.READ_PHONE_STATE;
if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) && (ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED)){
final List<SubscriptionInfo> subscriptionInfos = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
for (int i = 0; i < subscriptionInfos.size(); i++) {
carrierNames.add(subscriptionInfos.get(i).getCarrierName().toString());
}
} else {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
// Get carrier name (Network Operator Name)
carrierNames.add(telephonyManager.getNetworkOperatorName());
}
} catch (Exception e) {
e.printStackTrace();
}
return carrierNames;
}
1
幸運的是有幾個本地的解決方案。希望這會有助於某人。
對於API> = 17:
TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
// Get information about all radio modules on device board
// and check what you need by calling #getCellIdentity.
final List<CellInfo> allCellInfo = manager.getAllCellInfo();
for (CellInfo cellInfo : allCellInfo) {
if (cellInfo instanceof CellInfoGsm) {
CellIdentityGsm cellIdentity = ((CellInfoGsm) cellInfo).getCellIdentity();
//TODO Use cellIdentity to check MCC/MNC code, for instance.
} else if (cellInfo instanceof CellInfoWcdma) {
CellIdentityWcdma cellIdentity = ((CellInfoWcdma) cellInfo).getCellIdentity();
} else if (cellInfo instanceof CellInfoLte) {
CellIdentityLte cellIdentity = ((CellInfoLte) cellInfo).getCellIdentity();
} else if (cellInfo instanceof CellInfoCdma) {
CellIdentityCdma cellIdentity = ((CellInfoCdma) cellInfo).getCellIdentity();
}
}
在AndroidManifest添加權限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
</manifest>
爲了讓網絡運營商可以檢查MCC和MNC碼:
- https://en.wikipedia.org/wiki/Mobile_country_code(一般信息)。
- https://clients.txtnation.com/hc/en-us/articles/218719768-MCCMNC-mobile-country-code-and-mobile-network-code-list-(相當充分和最新的運營商名單)。
對於API> = 22:
final SubscriptionManager subscriptionManager = SubscriptionManager.from(context);
final List<SubscriptionInfo> activeSubscriptionInfoList = subscriptionManager.getActiveSubscriptionInfoList();
for (SubscriptionInfo subscriptionInfo : activeSubscriptionInfoList) {
final CharSequence carrierName = subscriptionInfo.getCarrierName();
final CharSequence displayName = subscriptionInfo.getDisplayName();
final int mcc = subscriptionInfo.getMcc();
final int mnc = subscriptionInfo.getMnc();
final String subscriptionInfoNumber = subscriptionInfo.getNumber();
}
對於API> = 23。要檢查手機是雙卡/三卡/多卡:
TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
if (manager.getPhoneCount() == 2) {
// Dual sim
}
相關問題
- 1. 如何從雙SIM卡手機Android獲取運營商名稱?
- 2. Android主詳細信息詳細信息
- 3. 獲取移動運營商信息Phonegap
- 4. 如何獲取位置遠程手機的詳細信息
- 5. 如何獲取來電者的詳細信息 - 手機ID?
- 6. 獲取Facebook詳細信息
- 7. 如何從手機獲取所有聯繫人詳細信息
- 8. 獲取SimOperatorName的雙SIM卡android手機
- 9. 獲取手機上的運營商充值計劃android
- 10. Android - 從EMV信用卡中讀取可用的詳細信息
- 11. Crystal Reports詳細信息詳細信息
- 12. 返回未註冊手機運營商信息
- 13. 如何獲取雙SIM卡android手機上連接互聯網的運營商名稱?
- 14. C#獲取過程的詳細信息
- 15. 獲取額外的PaperSource詳細信息
- 16. 獲取短信的詳細信息從它的ID Android
- 17. 顯示進口商的詳細信息
- 18. Android按鈕詳細信息
- 19. 獲取表格詳細信息
- 20. 從google地方獲取詳細信息
- 21. 獲取DataGrid行詳細信息
- 22. Foursquare獲取場地詳細信息
- 23. 獲取NetworkCredential詳細信息wcf
- 24. Pinterest api - 獲取用戶詳細信息
- 25. Get-ADGroupMember獲取用戶詳細信息?
- 26. 從ActivatedRouteSnapshot獲取路線詳細信息
- 27. 從照片中獲取詳細信息
- 28. 獲取ID並顯示詳細信息
- 29. ActiveDirectoryLdapAuthenticationProvider:獲取用戶詳細信息
- 30. 從log.nsf獲取用戶詳細信息
你確定它可以用於雙SIM卡手機嗎? – onkar
Android SDK不支持多個SIM卡。只有我們可以獲得當前網絡運營商或SIM運營商的名稱,並且如果您沒有SIM卡,結果將是「」。這將工作,但只對主要運營商。 –
從API 22開始,現在您可以檢查多張SIM卡。查看[Android文檔](https://developer.android.com/reference/android/telephony/SubscriptionManager.html#getActiveSubscriptionInfoList%28%29) –