当我用新的SIM卡替换现有的SIM卡时,我正在编写一个自动发送短信的应用程序。我可以使用SIM卡的用户ID来检查这个但是每次android设备启动时我都会检查它。 感谢...
答案 0 :(得分: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 );
}
}
答案 1 :(得分:0)
dhaag23的答案涵盖了如何设置启动接收器。但是,它没有提到应用程序必须具有启动完成权限或任何有关您的SIM卡要求的权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
要检查SIM卡值,我已设置为在应用设置中存储设备的电话号码。请注意,这可以由用户在应用程序设置中清除,您必须小心处理首次初始化的情况。如果您检测到当前电话号码与设置中先前存储的值不匹配,则可以断定它是新的SIM卡。
以下是我用来获取当前手机的方法#:
public static String getPhoneNumber(Context context) {
TelephonyManager phoneManager = (TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = phoneManager.getLine1Number();
return phoneNumber;
}
获取SIM序列的方法。
public static String getSimSerialNumber(Context context) {
TelephonyManager phoneManager = (TelephonyManager)
context.getSystemService(Context.TELEPHONY_SERVICE);
String phoneNumber = phoneManager.getSimSerialNumber();
return phoneNumber;
}
如果有办法明确检查新卡/缺失SIM卡的存在,我不确定它是什么。我上面用于获取电话号码的方法显然在所有运营商上都不可靠。此外,使SIM卡串口仅适用于SIM卡电话。