我正在开发一个防盗应用程序,它基于使用广播接收器为传入的SMS启动服务。
但是如果手机已经丢失,当应用程序从Google Play远程安装时广播接收器将无法工作,因为应用程序必须至少启动一次才能接收 3.0+ 版本的广播。
那么,有没有办法在安装后使用一些“帮助应用程序”立即启动应用程序,或者让广播接收器为远程安装工作?
我正在开发一个防盗应用程序,它基于使用广播接收器为传入的SMS启动服务。
但是如果手机已经丢失,当应用程序从Google Play远程安装时广播接收器将无法工作,因为应用程序必须至少启动一次才能接收 3.0+ 版本的广播。
那么,有没有办法在安装后使用一些“帮助应用程序”立即启动应用程序,或者让广播接收器为远程安装工作?
您的应用程序需要在清单中具有android.permission.RECEIVE_SMS的使用权限。
一旦你有了它,你就可以为android.provider.Telephony.SMS_RECEIVED
.
然后你会想要创建你的接收器。
<receiver android:name=".SMSBroadcastReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
当您接收到您想要检索消息并确定它是否是您想要关注的意图时,您的接收器应该扩展BroadcastReceiver和 onReceive() 方法。android.provider.Telephony.SMS_RECEIVED_ACTION
您的代码可能看起来像这样。
public class SMSBroadcastReceiver extends BroadcastReceiver {
private static final String TAG = "SMSBroadcastReceiver";
private static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED"
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(SMS_RECEIVED)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
if (messages.length > -1) {
//You have messages, do something with them here to determine if you want to look at them and other actions.
}
}
}
}
}