Commit d791cf20 authored by 胡江林's avatar 胡江林

开机时启动自己服务即可。

parent 3fc9ca83
package com.youbay.daemon; package com.youbay.daemon;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
...@@ -12,59 +9,22 @@ import android.os.Build; ...@@ -12,59 +9,22 @@ import android.os.Build;
* @author Administrator * @author Administrator
*/ */
public class BootReceiver extends BroadcastReceiver { public class BootReceiver extends BroadcastReceiver {
static final String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";
static final String ACTION_SMDT = "android.intent.action.SMDT_BOOT_COMPLETED"; static final String ACTION_SMDT = "android.intent.action.SMDT_BOOT_COMPLETED";
static final String ACTION_AUDIO = "android.media.AUDIO_BECOMING_NOISY";
private static final String APP_PACKAGE_NAME = "com.youbay.classcard";
private static final String DAEMON_SERVICE_NAME = "com.youbay.classcard.service.DaemonService";
private static final String DAEMON_SERVICE_ACTION = "com.youbay.classcard.service.DaemonService";
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {
if (ACTION_BOOT.equals(intent.getAction())) { if (intent == null) {
System.out.println("-------------BOOT_COMPLETED----------------"); return;
startIntent(context);
} else if (ACTION_SMDT.equals(intent.getAction())) {
System.out.println("-------------SMDT_BOOT_COMPLETED----------------");
startIntent(context);
} else if (ACTION_AUDIO.equals(intent.getAction())) {
System.out.println("-------------AUDIO_BECOMING_NOISY----------------");
startIntent(context);
}
} }
String action = intent.getAction();
private void startIntent(Context context) { if (Intent.ACTION_BOOT_COMPLETED.equals(action) || ACTION_SMDT.equals(action)) {
System.out.println("-------------BOOT_COMPLETED----------------");
/*if (isServiceRunning(context)) { //startIntent(context);
System.out.println("this daemon service is running ..");
} else {
final Intent daemonIntent = new Intent();
daemonIntent.setAction(DAEMON_SERVICE_ACTION);
daemonIntent.setComponent(new ComponentName(APP_PACKAGE_NAME, DAEMON_SERVICE_NAME));
context.startService(daemonIntent);
}*/
final Intent daemonIntent = new Intent();
daemonIntent.setAction(DAEMON_SERVICE_ACTION);
daemonIntent.setComponent(new ComponentName(APP_PACKAGE_NAME, DAEMON_SERVICE_NAME));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
context.startForegroundService(daemonIntent); context.startForegroundService(new Intent(context, DaemonService.class));
} else { } else {
context.startService(daemonIntent); context.startService(new Intent(context, DaemonService.class));
}
}
private boolean isServiceRunning(Context context) {
ActivityManager manager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager
.getRunningServices(Integer.MAX_VALUE)) {
if (DaemonService.class.getName().equals(
service.service.getClassName())) {
return true;
} }
} }
return false;
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment