欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

关于mtk手机单卡跟双卡判断

更新时间: 2014-01-05 02:34:58 责任编辑: Author_N1

 

关于MTK手机单卡和双卡判断
我想问下,MTK里面判断手机有几个卡槽,各个卡槽是否插了卡,以及插卡了是否是可用的状态(SIM_STATE_READY),如果是双卡,怎么判断是W+G还是E+G。想到的就这么多,有人知道代码怎么写吗,刚接触MTK代码,这些在网上没找到资料
--参考方法--
获取卡槽的类型这个不了解
下面来段代码你看看  能有啥启发不 
private static void initMtkDoubleSim() {
try {
TelephonyManager tm = (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);
Class<?> c = Class.forName("com.android.internal.telephony.Phone");
Field fields1 = c.getField("GEMINI_SIM_1");
fields1.setAccessible(true);
simId_1 = (Integer) fields1.get(null);
Field fields2 = c.getField("GEMINI_SIM_2");
fields2.setAccessible(true);
simId_2 = (Integer) fields2.get(null);

Method m = TelephonyManager.class.getDeclaredMethod(
"getSubscriberIdGemini", int.class);
imsi_1 = (String) m.invoke(tm, simId_1);
imsi_2 = (String) m.invoke(tm, simId_2);

Method m1 = TelephonyManager.class.getDeclaredMethod(
"getDeviceIdGemini", int.class);
imei_1 = (String) m1.invoke(tm, simId_1);
imei_2 = (String) m1.invoke(tm, simId_2);

Method mx = TelephonyManager.class.getDeclaredMethod(
"getPhoneTypeGemini", int.class);
phoneType_1 = (Integer) mx.invoke(tm, simId_1);
phoneType_2 = (Integer) mx.invoke(tm, simId_2);

if (TextUtils.isEmpty(imsi_1) && (!TextUtils.isEmpty(imsi_2))) {
defaultImsi = imsi_2;
}
if (TextUtils.isEmpty(imsi_2) && (!TextUtils.isEmpty(imsi_1))) {
defaultImsi = imsi_1;
}
} catch (Exception e) {
isMtkDoubleSim = false;
return;
}
isMtkDoubleSim = true;
}

--参考方法--
FeatureOption.MTK_GEMINI_SUPPORT
这个是判断是否是双卡
FeatureOption.MTK_GEMINI_3G_SWITCH
这个是判断是否是3G
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:34:58
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11679/
本文WWW.DOC100.NET DOC100.NET版权所有。