From 724a52b3fd2d9e02c09d832f84d78868d5997f01 Mon Sep 17 00:00:00 2001 From: lliioollcn Date: Sun, 19 Dec 2021 16:13:55 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=B2=A1=E7=94=A8?= =?UTF-8?q?=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/cn/lliiooll/gmc/BotService.java | 2 +- app/src/main/java/net/lz1998/gomiraiclient/MainActivity.kt | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/cn/lliiooll/gmc/BotService.java b/app/src/main/java/cn/lliiooll/gmc/BotService.java index 0917415..46b15fa 100644 --- a/app/src/main/java/cn/lliiooll/gmc/BotService.java +++ b/app/src/main/java/cn/lliiooll/gmc/BotService.java @@ -20,7 +20,7 @@ public class BotService extends Service { public void onCreate() { new Thread(Gmc::start).start(); - Toast.makeText(this, "Start Service", Toast.LENGTH_SHORT).show(); + Toast.makeText(this, "GMC启动中...", Toast.LENGTH_SHORT).show(); active = true; startForeground(1, NotificationUtil.create(this)); super.onCreate(); diff --git a/app/src/main/java/net/lz1998/gomiraiclient/MainActivity.kt b/app/src/main/java/net/lz1998/gomiraiclient/MainActivity.kt index c45a455..5cea17a 100644 --- a/app/src/main/java/net/lz1998/gomiraiclient/MainActivity.kt +++ b/app/src/main/java/net/lz1998/gomiraiclient/MainActivity.kt @@ -24,12 +24,11 @@ class MainActivity : AppCompatActivity() { } // 启动服务 if (!BotService.isActive()) { - Toast.makeText(this, "Start", Toast.LENGTH_SHORT).show(); BotService.start(this) } val t = this; thread { - Thread.sleep(3000L) + Thread.sleep(3000L)// 等3秒让gmc启动 t.runOnUiThread { binding.webview.settings.javaScriptEnabled = true binding.webview.settings.loadWithOverviewMode = true @@ -53,14 +52,12 @@ class MainActivity : AppCompatActivity() { ) { // Permission is granted. Continue the action or workflow // in your app. - Toast.makeText(this, "权限通过", Toast.LENGTH_LONG).show() } else { // Explain to the user that the feature is unavailable because // the features requires a permission that the user has denied. // At the same time, respect the user's decision. Don't link to // system settings in an effort to convince the user to change // their decision. - Toast.makeText(this, "权限不通过", Toast.LENGTH_LONG).show() } From a3775d082c76ff8fb9fa64bd4c9bfb5ed3aa7202 Mon Sep 17 00:00:00 2001 From: lliioollcn Date: Sun, 19 Dec 2021 16:19:40 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/cn/lliiooll/gmc/BotService.java | 12 ++++++---- .../lliiooll/gmc/util/NotificationUtil.java | 13 ++++++---- .../cn/lliiooll/gmc/util/PermissionUtil.java | 24 ++++++++++++++++++- .../net/lz1998/gomiraiclient/MainActivity.kt | 2 +- 4 files changed, 40 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/cn/lliiooll/gmc/BotService.java b/app/src/main/java/cn/lliiooll/gmc/BotService.java index 46b15fa..99a517d 100644 --- a/app/src/main/java/cn/lliiooll/gmc/BotService.java +++ b/app/src/main/java/cn/lliiooll/gmc/BotService.java @@ -13,16 +13,18 @@ import net.lz1998.gomiraiclient.MainActivity; import org.jetbrains.annotations.NotNull; +/** + * 用来运行gmc的服务 + */ public class BotService extends Service { private static boolean active = false; @Override public void onCreate() { - - new Thread(Gmc::start).start(); - Toast.makeText(this, "GMC启动中...", Toast.LENGTH_SHORT).show(); + new Thread(Gmc::start).start();// 新建线程启动gmc + Toast.makeText(this, "GMC启动中...", Toast.LENGTH_LONG).show();// 发个通知别让用户以为程序卡了 active = true; - startForeground(1, NotificationUtil.create(this)); + startForeground(1, NotificationUtil.create(this));// 启动前台服务 super.onCreate(); } @@ -40,7 +42,7 @@ public int onStartCommand(Intent intent, int flags, int startId) { @Override public void onDestroy() { active = false; - stopForeground(true); + stopForeground(true);// 停止前台服务 super.onDestroy(); } diff --git a/app/src/main/java/cn/lliiooll/gmc/util/NotificationUtil.java b/app/src/main/java/cn/lliiooll/gmc/util/NotificationUtil.java index dd9accc..48a99a1 100644 --- a/app/src/main/java/cn/lliiooll/gmc/util/NotificationUtil.java +++ b/app/src/main/java/cn/lliiooll/gmc/util/NotificationUtil.java @@ -4,17 +4,22 @@ import android.app.NotificationChannel; import android.app.NotificationManager; import android.app.PendingIntent; -import android.content.Context; import android.content.Intent; -import android.graphics.Color; import android.os.Build; import androidx.core.app.NotificationCompat; -import androidx.core.app.NotificationManagerCompat; import cn.lliiooll.gmc.BotService; -import net.lz1998.gomiraiclient.MainActivity; import net.lz1998.gomiraiclient.R; +/** + * 通知工具类 + */ public class NotificationUtil { + + /** + * 创建一个用于挂前台服务的通知 + * @param service 服务 + * @return 通知 + */ public static Notification create(BotService service) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { CharSequence name = "GMC"; diff --git a/app/src/main/java/cn/lliiooll/gmc/util/PermissionUtil.java b/app/src/main/java/cn/lliiooll/gmc/util/PermissionUtil.java index 749f12c..134bd50 100644 --- a/app/src/main/java/cn/lliiooll/gmc/util/PermissionUtil.java +++ b/app/src/main/java/cn/lliiooll/gmc/util/PermissionUtil.java @@ -6,10 +6,15 @@ import android.os.Build; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; -import net.lz1998.gomiraiclient.MainActivity; import org.jetbrains.annotations.NotNull; +/** + * 权限类 + */ public class PermissionUtil { + /** + * 所有程序用到的权限 + */ private static final String[] permissions = new String[]{ Manifest.permission.MANAGE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, @@ -17,8 +22,16 @@ public class PermissionUtil { Manifest.permission.FOREGROUND_SERVICE, Manifest.permission.INTERNET, }; + /** + * 权限请求id + */ private static final int requestCode = 0x9081; + /** + * 检查程序是否有需要的权限 + * @param activity 界面 + * @return 是否拥有全部权限 + */ @NotNull public static boolean checkAll(Activity activity) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { @@ -33,10 +46,19 @@ public static boolean checkAll(Activity activity) { return true; } + /** + * 请求权限 + * @param activity 界面 + */ public static void request(Activity activity) { ActivityCompat.requestPermissions(activity, permissions, requestCode); } + /** + * 判断是不是程序的requestCode + * @param requestCode + * @return + */ public static boolean isSelfRequest(int requestCode) { return requestCode == PermissionUtil.requestCode; } diff --git a/app/src/main/java/net/lz1998/gomiraiclient/MainActivity.kt b/app/src/main/java/net/lz1998/gomiraiclient/MainActivity.kt index 5cea17a..f313a3d 100644 --- a/app/src/main/java/net/lz1998/gomiraiclient/MainActivity.kt +++ b/app/src/main/java/net/lz1998/gomiraiclient/MainActivity.kt @@ -29,7 +29,7 @@ class MainActivity : AppCompatActivity() { val t = this; thread { Thread.sleep(3000L)// 等3秒让gmc启动 - t.runOnUiThread { + t.runOnUiThread {// UI线程更新界面 binding.webview.settings.javaScriptEnabled = true binding.webview.settings.loadWithOverviewMode = true binding.webview.webViewClient = object : WebViewClient() {