1
有無論如何檢查移動數據是從SIM卡1或SIM卡2在Android編程活動?檢查移動數據是從SIM卡或SIM卡2 Android
另外我想獲取數據處於活動狀態的運營商提供商。
當量: SIM 1:載體1 辛2:載體2
如果數據是在SIM 2 活性它應該返回載體2的名稱。
有無論如何檢查移動數據是從SIM卡1或SIM卡2在Android編程活動?檢查移動數據是從SIM卡或SIM卡2 Android
另外我想獲取數據處於活動狀態的運營商提供商。
當量: SIM 1:載體1 辛2:載體2
如果數據是在SIM 2 活性它應該返回載體2的名稱。
我的方式(的Android> = 22)
int getDefaultDataSubscriptionId(final SubscriptionManager subscriptionManager)
{
if (android.os.Build.VERSION.SDK_INT >= 24)
{
int nDataSubscriptionId = SubscriptionManager.getDefaultDataSubscriptionId();
if (nDataSubscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID)
{
return (nDataSubscriptionId);
}
}
try
{
Class<?> subscriptionClass = Class.forName(subscriptionManager.getClass().getName());
try
{
Method getDefaultDataSubscriptionId = subscriptionClass.getMethod("getDefaultDataSubId");
try
{
return ((int) getDefaultDataSubscriptionId.invoke(subscriptionManager));
}
catch (IllegalAccessException e1)
{
e1.printStackTrace();
}
catch (InvocationTargetException e1)
{
e1.printStackTrace();
}
}
catch (NoSuchMethodException e1)
{
e1.printStackTrace();
}
}
catch (ClassNotFoundException e1)
{
e1.printStackTrace();
}
return (SubscriptionManager.INVALID_SUBSCRIPTION_ID);
}
@TargetApi(22)
public String getUIText22(final TelephonyManager telephonyManager)
{
SubscriptionManager subscriptionManager = (SubscriptionManager) getContext().getApplicationContext().getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
int nDataSubscriptionId = getDefaultDataSubscriptionId(subscriptionManager);
if (nDataSubscriptionId != SubscriptionManager.INVALID_SUBSCRIPTION_ID)
{
SubscriptionInfo si = subscriptionManager.getActiveSubscriptionInfo(nDataSubscriptionId);
if (si != null)
{
return (si.getCarrierName().toString());
}
}
}