android 9.0上使用前台服务,需要添加权限
重写onCreate
public void onCreate(){
super.onCreate();
Log.d("MyService","onCreate executed");
Intent intent = new Intent(this,MainActivity.class);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,0);
Notification notification = null;
NotificationManager manager = (NotificationManager) getApplication().getSystemService(NOTIFICATION_SERVICE);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
Uri mUri = Settings.System.DEFAULT_NOTIFICATION_URI;
NotificationChannel mChannel = new NotificationChannel(CHANNEL_ONE_ID, "driver", NotificationManager.IMPORTANCE_LOW);//CHANNEL_ONE_ID自定义
mChannel.setDescription("description");
mChannel.setSound(mUri, Notification.AUDIO_ATTRIBUTES_DEFAULT);
manager.createNotificationChannel(mChannel);
notification = new Notification.Builder(this, CHANNEL_ONE_ID)
.setChannelId(CHANNEL_ONE_ID)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(getString(R.string.app_name))
.setContentText("hello world")
.setContentIntent(pi)
.build();
} else {
// 提升应用权限
notification = new Notification.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(getString(R.string.app_name))
.setContentText("hello world")
.setContentIntent(pi)
.build();
}
notification.flags = Notification.FLAG_ONGOING_EVENT;
notification.flags |= Notification.FLAG_NO_CLEAR;
notification.flags |= Notification.FLAG_FOREGROUND_SERVICE;
startForeground(10000, notification);
}