【问题标题】:Android get number of tries made for unlocking SIM programmaticallyAndroid获取以编程方式解锁SIM的尝试次数
【发布时间】:2014-09-18 09:38:45
【问题描述】:

我正在通过我的应用程序通过这些线路动态解锁 SIM PIN

TelephonyManager manager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
int state = manager.getSimState();

if(state == TelephonyManager.SIM_STATE_PIN_REQUIRED || state == TelephonyManager.SIM_STATE_PUK_REQUIRED)
{
  try {

   @SuppressWarnings("rawtypes")
   Class clazz = Class.forName(manager.getClass().getName());

   Method m = clazz.getDeclaredMethod("getITelephony");
   m.setAccessible(true);
   ITelephony it = (ITelephony) m.invoke(manager);
   if (it.supplyPin(simPin)) {
       Toast.makeText(context,"SIM UnLocked",Toast.LENGTH_LONG).show();
   } else {
       Toast.makeText(context,"SIM UNLOCK FAILED",Toast.LENGTH_LONG).show();
   }

  } catch (Exception e) {
 // 
     e.printStackTrace();
  }

}else{
  Toast.makeText(context,"SIM is not Locked",Toast.LENGTH_LONG).show();
}

现在我想知道已经尝试了多少次来解锁 SIM 卡,就像默认的 SIM PIN/PUK 解锁器告诉“还剩两次尝试”一样。让我知道是否有任何可能性。

【问题讨论】:

  • 您找到解决方案了吗?
  • 没有直接的方式,你可以放不。 SharedPreferences 中的尝试计数

标签: java android gsm telephony


【解决方案1】:

只需创建一个int,如果 sim 解锁失败,则从 3 计数到 0..

int 尝试次数 = 3;

} 否则 {

Toast.makeText(context,"SIM UNLOCK FAILED",Toast.LENGTH_LONG).show();

尝试--; }

【讨论】:

  • 将尝试计数器移动到静态位置可能更实用,以便对其进行跟踪和维护。将其保留在我认为的方法中并不能提供太多目的,因为它似乎超出了单遍方法的范围。
  • 当尝试通过其他应用程序时,这不起作用。基本上我想从 SIM 中获取这个值,如果它存在的话。
  • 嗯,做了一些研究,但我找不到其他选择
猜你喜欢
  • 2017-12-31
  • 2017-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-13
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多