Android SIM更改

sub*_*n90 6 service android sim-card

是否可以在启动时使用Android中的TelephonyManager检测SIM号码,在启动时使用Service ...

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String ss=tm.getSimSerialNumber();
Run Code Online (Sandbox Code Playgroud)

Sus*_*hil 11

您需要为启动完成操作注册广播接收器,即android.intent.action.BOOT_COMPLETED

在onReceive这个接收器,你可以开始你的服务获得SIM号码与下面的代码行

  TelephonyManager telephoneMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
  String phoneNumber = telephoneMgr.getLine1Number();
Run Code Online (Sandbox Code Playgroud)

还需要在清单文件中具有读取电话号码的权限,如READ_PHONE_STATE.

你可以从广播接收器开始服务 -

 public class BootListener extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent arg1) {
    Intent intent = new Intent(context,Myservice.class);
    context.startService(intent);
}
Run Code Online (Sandbox Code Playgroud)

}

  • 你可以从广播接收器开始服务as-公共类BootListener扩展BroadcastReceiver {@Override public void onReceive(Context context,Intent arg1){Intent intent = new Intent(context,Myservice.class); context.startService(意向); }} (2认同)
  • 你能确认你已经加入清单的权限 - <使用许可权的android:NAME ="android.permission.READ_PHONE_STATE" />.因为我已经在模拟器上测试了程序并且它正在运行 (2认同)