我有一个双SIM手机,我的应用程序显示了SIM和运营商的细节。但是(显然)它只检测和显示SIM1而不是SIM2的细节。是否有可以访问SIM2详细信息的方法?
我知道Android在默认情况下不支持双SIM,移动制造商对其进行了调整,使其使用所选的SIM (SIM1或SIM2,无论用户选择哪个用户)作为主用户(用于呼叫),而另一个SIM是备用的(在接到呼叫时启动)。必须有一种方法来检测这个主要的SIM。
我对同时获取两个SIM细节不感兴趣。只需要用户选择的SIM的详细信息作为进行呼叫的主要内容。
任何链接/工作实例/建议,任何类型的帮助都将不胜感激。
谢谢
发布于 2014-10-28 15:17:56
若要在控制台中查看SIM1类型的状态,请参见: adb虚拟库telephony.registry
若要在控制台中查看SIM2类型的状态,请参见: adb虚拟库telephony.registry2
mCallState在传入/传出电话时发生了变化。它允许让你知道哪个SIM卡被用来打电话。
欲了解更多信息,请参阅:亚行外壳getprop\grep gsm
当您从Java应用程序调用虚拟心理时,需要清单中的android.permission.DUMP。但它不能在一些新设备上工作。
在某些手机上,可以使用这段代码来了解默认sim卡
Object tm = getSystemService(Context.TELEPHONY_SERVICE);
Method method_getDefaultSim;
int defaultSim = -1;
try {
method_getDefaultSim = tm.getClass().getDeclaredMethod("getDefaultSim");
method_getDefaultSim.setAccessible(true);
defaultSim = (Integer) method_getDefaultSim.invoke(tm);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Method method_getSmsDefaultSim;
int smsDefaultSim = -1;
try {
method_getSmsDefaultSim = tm.getClass().getDeclaredMethod("getSmsDefaultSim");
smsDefaultSim = (Integer) method_getSmsDefaultSim.invoke(tm);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}发布于 2014-01-05 15:01:05
步骤1:列出每一家拥有1+双SIM设备的安卓设备制造商的列表。
第二步:联系那些制造商,问他们你的问题。
正如你所写的:
我知道Android在默认情况下不支持双SIM,并且移动制造商对其进行了调整。
没有要求任何给定设备制造商必须以与其他制造商相同的方式对其进行调整,也没有要求任何给定设备制造商必须以应用程序开发人员可以看到的方式对其进行调整。因此,如果应用程序支持是可用的,那么获取您想要的信息的唯一方法就是与制造商联系。
https://stackoverflow.com/questions/20934274
复制相似问题