这是我的第一个问题! 我想知道如何访问android中的标准设置,特别是SIM功能。 在启动时,我的三星i-9000只显示插入PIN码的窗口几秒钟,然后消失,所以我想自己开发一个用于主屏幕的小部件,启动标准窗口插入PIN码,但我不知道怎么办呢!
或者某种程度上改变那个窗口的屏幕超时......
非常感谢!
答案 0 :(得分:1)
在Android中使用TelephonyManager 您不直接实例化此类;相反,您通过Context.getSystemService(Context.TELEPHONY_SERVICE)检索对实例的引用
TelephonyManager manager = (TelephonyManager) Context.getSystemService(Context.TELEPHONY_SERVICE);
int state = manager.getSimState();
if(state == TelephonyManager.SIM_STATE_PIN_REQUIRED || state == TelephonyManager.SIM_STATE_PUK_REQUIRED)
{
//PIN/PUK is required
}
愿这对你有帮助......
答案 1 :(得分:0)
如果您想在Android 2.3以上版本中应用PIN,则必须将您的应用安装为系统应用,在这两种情况下都应使用此代码:
TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
ITelephony telephonyService;
telephonyService = (ITelephony)m.invoke(tm);
// Supply SIM PIN
SharedPreferences prefs = getSharedPreferences(OrangeSignalMeterLoop.class.getCanonicalName()+"x", Context.MODE_PRIVATE);
if(prefs.getBoolean(context.getString(R.string.whetherAutoCompletePIN), false)) {
String sim_pin = prefs.getString(context.getString(R.string.pinCode), "1111");
telephonyService.supplyPin(sim_pin);
}
您可能无法使用内部课程,您可以在此处找到最佳教程:https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/