Android实现string[0]返回设备主卡对应的设备识别码,string[1]返回设备副卡对应的设备识别码,若无副卡,返回空,完整代码展示
时间: 2024-03-01 09:49:35 浏览: 144
以下是一个简单的实现,可以尝试一下:
```java
public static String[] getDeviceIds(Context context) {
String[] deviceIds = new String[2];
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
List<SubscriptionInfo> subscriptionInfoList = SubscriptionManager.from(context).getActiveSubscriptionInfoList();
if (subscriptionInfoList != null) {
for (int i = 0; i < subscriptionInfoList.size(); i++) {
SubscriptionInfo subscriptionInfo = subscriptionInfoList.get(i);
int slotId = subscriptionInfo.getSimSlotIndex();
String deviceId = telephonyManager.getDeviceId(slotId);
if (i == 0) {
deviceIds[0] = deviceId;
} else {
deviceIds[1] = deviceId;
}
}
}
} else {
deviceIds[0] = telephonyManager.getDeviceId();
}
return deviceIds;
}
```
这里用到了TelephonyManager获取设备ID,同时也使用了SubscriptionManager类来获取设备的多卡信息。如果设备是Android 6.0及以上版本,那么会尝试获取设备的多卡信息,从而返回主卡和副卡的设备ID;否则只返回主卡的设备ID。
阅读全文