Ich habe ein Projekt, das nur ein Service ist und keine Aktivität und Benutzeroberfläche hat. Ich möchte meinen Anwendungshintergrunddienst starten, wenn das Telefon vollständig hochfährt. aber ich erhalte nie die "BOOT_COMPLETED" Nachricht von OS. das ist mein Code:Warum Broadcast Receiver nicht für Service-Anwendung Android arbeiten?
Manifest:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.droid.arghaman.location_tracker">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<receiver android:name=".BootBroadcastReceiver"
android:enabled="true"
android:exported="false"
android:label="StartServiceAtBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</receiver>
</application>
<service android:name=".mySevice"></service>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
</manifest>
Broadcast-Empfänger:
public class BootBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("boot Received", intent.getAction());
Intent serviceLuncher = new Intent(context, myService.class);
context.startService(serviceLuncher);
}
}
myService:
public class LocationNotifierService extends Service {
Timer timer ;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate(){
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Toast.makeText(getBaseContext(),"Location",Toast.LENGTH_SHORT).show();
}
},3000);
}
@Override
public void onDestroy(){
}
@Override
public int onStartCommand(Intent intent, int flagId, int startId){
return START_STICKY;
}
}
, aber ich bekomme nie "boot Received" log. gibt es einen Fehler und gibt es eine Möglichkeit, mein Programm zu debuggen?
Ich empfehle, dass mein Projekt nur diesen Dienst und keine UI haben darf.
Ich habe Empfänger in meinem Manifest .... –
Bitte stellen Sie eine Lösung zur Verfügung ... Wie kann ich meinen Dienst ohne Benutzerinteraktion starten ??? –
@ Navid_pdp11: Es gibt im Allgemeinen keine Lösung. Android ist so eingerichtet, dass es Malware-Autoren daran hindert, das zu tun, was Sie vorhaben: verstecken Sie sich vor dem Benutzer und spionieren Sie ihn aus. – CommonsWare