是新到Android,我想开发可接收短信和处理消息的应用程序。启动(注册)在Andriod的启动服务(启动)
我已经采取了网络上一看就怎么收到短信和波纹管是代码在尝试使用。
public class SmsListener extends BroadcastReceiver {
String R_Message;
private SharedPreferences preferences;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
Bundle bundle = intent.getExtras(); //---get the SMS message passed in---
SmsMessage[] msgs = null;
String msg_from;
if (bundle != null) {
//---retrieve the SMS message received---
try {
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i = 0; i < msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
msg_from = msgs[i].getOriginatingAddress();
String msgBody = msgs[i].getMessageBody();
}
return;
} catch (Exception e) {
//Log.d("Exception caught",e.getMessage());
R_Message = "No message received";
return;
}
}
}
}
}
,这里是我发现,它可以启动一个服务,让我的应用程序可以在后台工作的代码
public class SMSService extends IntentService {
/**
* A constructor is required, and must call the super IntentService(String)
* constructor with a name for the worker thread.
*/
public SMSService() {
super("SMSService ");
}
@Override
protected void onHandleIntent(Intent intent) {
// Normally we would do some work here, like download a file.
// For our sample, we just sleep for 5 seconds.
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// Restore interrupt status.
Thread.currentThread().interrupt();
}
}
}
裁判:https://developer.android.com/guide/components/services.html
我创建的文件(S)SmsListener.java和SMSService.java清单中我有
<receiver android:name=".SmsListener">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
Permission:
<uses-permission android:name="android.permission.RECEIVE_SMS" />
但我不知道怎么称呼上述两个Java进程,并在那里打电话给他们,所以我可以验证应用程序正在接收短信和关闭,即使它会继续。
注:我的应用程序将有哪些需要两个服务是工作在后台的每次请告诉我如何添加第二个服务。
任何帮助是极大学徒感谢
服务被添加到清单文件中标记 –
我添加了这个 但我无法在服务列表中看到 –
AndroidError