Вот мой сервис MyServiceSMS.java
Всякий раз, когда я закрываю свое приложение, я получаю только тост по умолчанию
широковещательный приемник "Сообщение получено: xxxxxxx"
Остальная часть кода не выполняется ниже на Receiceve.
У меня есть некоторые задачи внутри метода onReceiceve, я хочу, чтобы они выполнялись, даже если пользователь закрывает приложение.
public class MyServiceSMS extends Service {
private IntentFilter mIntentFilter;
private SMSGetter smsGetter;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
smsGetter = new SMSGetter();
mIntentFilter = new IntentFilter();
mIntentFilter.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(smsGetter, mIntentFilter);
Toast.makeText(this, "Hello I'm a service", Toast.LENGTH_SHORT).show();
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
// TODO: Return the communication channel to the service.
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onDestroy() {
super.onDestroy();
//unregisterReceiver(smsGetter);
}
public class SMSGetter extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pdus[0]);
JSONObject data = new JSONObject();
try {
data.put("from", smsMessage.getDisplayOriginatingAddress());
data.put("message", smsMessage.getMessageBody());
SharedPreferences sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE);
if (sharedPreferences.contains(IP) && sharedPreferences.contains(IP)) {
sendSMsToServer sendTextToServer = new sendSMsToServer();
sendTextToServer.execute(data.toString(), sharedPreferences.getString(IP, ""), sharedPreferences.getString(PORT, ""));
Toast.makeText(context, "Your Ip :" + data.toString(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(context, "Your IP is empty .. Scan to get IP Again ..", Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
// Toast.makeText(context, smsMessage.getDisplayMessageBody(), Toast.LENGTH_SHORT).show();
}
}
}
}
Мой манифест
<service
android:name=".viewmodel.MyServiceSMS"
android:enabled="true"
android:exported="true"></service>