2010-12-10 74 views

回答

3

编写一个启动广播接收器。每次设备启动时都会运行。喜欢的东西下面的代码

<receiver android:name=".StartupReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      <category android:name="android.intent.category.HOME" /> 
     </intent-filter> 
    </receiver> 

:以下意图添加到您的清单

public class StartupReceiver extends BroadcastReceiver{ 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     Intent intent = new Intent(...); 
     context.startActivity(intent); 
    } 
} 
0

dhaag23的回答涵盖了如何建立一个启动接收器。然而,它并没有提到的是,应用程序必须有启动完成权限,或者任何关于您的SIM卡要求

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

对于检查SIM卡的价值,我已经设置了存储在该设备的电话号码应用设置。请注意,这可以由用户在应用程序设置中清除,并且您必须小心处理第一次初始化的情况。如果您检测到当前电话号码与设置中以前存储的值不匹配,则可以断定它是新的SIM卡。

下面是我用它来获得当前手机#方法:

用于获取SIM串行
public static String getPhoneNumber(Context context) { 
    TelephonyManager phoneManager = (TelephonyManager) 
      context.getSystemService(Context.TELEPHONY_SERVICE); 
    String phoneNumber = phoneManager.getLine1Number(); 
    return phoneNumber; 
} 

方法。

public static String getSimSerialNumber(Context context) { 
    TelephonyManager phoneManager = (TelephonyManager) 
      context.getSystemService(Context.TELEPHONY_SERVICE); 
    String phoneNumber = phoneManager.getSimSerialNumber(); 
    return phoneNumber; 
} 

如果有一种方法可以明确检查新/缺失SIM卡的存在,我不确定它是什么。我上面提到的获取电话号码的方法显然不适用于所有运营商。此外,获取SIM卡序列号仅适用于SIM卡手机。