我想创建一个监听短信并始终在后台运行的应用程序。
该服务必须在用户打开他的Android时启动 - 并始终在操作,直到Android设备关闭。
我只知道如何使用GUI(带有活动)创建应用程序 - 但在这种情况下,我不想使用任何GUI。
我没有找到任何如何做的例子。
答案 0 :(得分:2)
如果您只需要对传入的短信作出反应,您可以为此注册一个广播接收器。无需特殊背景服务。只要收到短信,您的代码就会被调用。
在你的android清单中指出一个扩展BroadcastReceiver的java类,以便为传入的SMS调用:
<receiver android:name="mypackage.SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
不要忘记许可:
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
然后实施您的SmsReceiver
课程:
public class SmsReceiver extends BroadcastReceiver {
private static final String ACTION = "android.provider.Telephony.SMS_RECEIVED";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ACTION.equals(action)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object messages[] = (Object[]) bundle.get("pdus");
if (messages != null) {
SmsMessage smsMessages[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
smsMessages[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
SmsMessage smsMessage = smsMessages[n];
String from = smsMessage.getOriginatingAddress();
//do your thing
}
}
}
}
}
}