1
모바일 데이터가 Android에서 sim 1 또는 sim 2에서 프로그래밍 방식으로 활성화되어 있는지 확인해야합니까 ??모바일 데이터가 SIM 또는 SIM에서 온 것인가?
또한 데이터가 활성화되어있는 이동 통신사를 원합니다.
식 : SIM 1 : 1 캐리어 SIM (2) : 담체 2
데이터가 SIM (2) 에서 활성화되는 경우에는 캐리어 (2)의 이름을 반환한다.
모바일 데이터가 Android에서 sim 1 또는 sim 2에서 프로그래밍 방식으로 활성화되어 있는지 확인해야합니까 ??모바일 데이터가 SIM 또는 SIM에서 온 것인가?
또한 데이터가 활성화되어있는 이동 통신사를 원합니다.
식 : SIM 1 : 1 캐리어 SIM (2) : 담체 2
데이터가 SIM (2) 에서 활성화되는 경우에는 캐리어 (2)의 이름을 반환한다.
내 방식 (안드로이드> = 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());
}
}
}