version:1.0

update:2021-10-21 10:14:40
fix:
add:增加开机检测弹窗,增加常驻通知
This commit is contained in:
2021-10-21 10:15:39 +08:00
parent a4c68f0b37
commit 768519e14e
17 changed files with 520 additions and 60 deletions

View File

@@ -1,6 +1,10 @@
package com.aoleyun.sn.service;
import android.annotation.SuppressLint;
import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -8,8 +12,10 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.net.Uri;
import android.os.Build;
import android.os.IBinder;
import android.os.SystemClock;
@@ -23,6 +29,10 @@ import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.aoleyun.sn.comm.PackageNames;
@@ -173,6 +183,8 @@ public class MainService extends Service implements MainContact.MainView, Networ
//发送设备mac地址和信息
mPresenter.sendMACAddress();
setFloatingWindow(this);
createNotificationChannel();
sendSimpleNotification();
}
@Override
@@ -215,6 +227,41 @@ public class MainService extends Service implements MainContact.MainView, Networ
return START_STICKY;
}
private void createNotificationChannel() {
// Create the NotificationChannel, but only on API 26+ because
// the NotificationChannel class is new and not in the support library
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
CharSequence name = channel_name;
String description = channel_description;
int importance = NotificationManager.IMPORTANCE_DEFAULT;
NotificationChannel channel = new NotificationChannel(CHANNEL_ID, name, importance);
channel.setDescription(description);
// Register the channel with the system; you can't change the importance
// or other notification behaviors after this
NotificationManager notificationManager = getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(channel);
}
}
private static final String CHANNEL_ID = "CHANNEL_ID";
private static final String channel_name = "系统通知";
private static final String channel_description = "我的设备系统通知";
private void sendSimpleNotification() {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "CHANNEL_ID")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("设备管控中")
// .setContentText("测试内容")
.setAutoCancel(false)
.setShowWhen(false)
.setOngoing(true)
.setPriority(NotificationCompat.PRIORITY_MAX);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
// notificationId is a unique int for each notification that you must define
notificationManager.notify(1, builder.build());
}
private void addShortcut() {
ApkUtils.addShortcut(MainService.this);
}