Browse Source

1.添加系统级弹窗。

20241218TB223FC(测试jar包)
wangwanlei 10 months ago
parent
commit
384a6acc74

+ 2
- 0
app/src/main/AndroidManifest.xml View File

42
         android:name="android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS"
42
         android:name="android.permission.CONTROL_DISPLAY_COLOR_TRANSFORMS"
43
         tools:ignore="ProtectedPermissions" />
43
         tools:ignore="ProtectedPermissions" />
44
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
44
     <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
45
+    <!--悬浮窗权限-->
46
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
45
 
47
 
46
     <application
48
     <application
47
         android:name="com.xhly.manageapp.ManageApplication"
49
         android:name="com.xhly.manageapp.ManageApplication"

+ 11
- 0
app/src/main/java/com/xhly/manageapp/ManageApplication.kt View File

672
             }
672
             }
673
             return arrayListOf()
673
             return arrayListOf()
674
         }
674
         }
675
+
676
+        /**
677
+         * 允许悬浮窗packageName: 应用的包名
678
+         * true:打开在其它应用的上层
679
+         * false:关闭在其它应用的上层
680
+         */
681
+        fun enableOverlayWindow(pkg:String=Const.CURRENTAPPPKG,enableFlag: Boolean=true){
682
+            if (ModelNameUtils.IS_LianxX505f() || ModelNameUtils.IS_LianxX6e6f()) {
683
+                csdkManager?.enableOverlayWindow(pkg,enableFlag)
684
+            }
685
+        }
675
     }
686
     }
676
 
687
 
677
     override fun onCreate() {
688
     override fun onCreate() {

+ 48
- 2
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt View File

7
 import android.Manifest
7
 import android.Manifest
8
 import android.annotation.SuppressLint
8
 import android.annotation.SuppressLint
9
 import android.app.ActivityManager
9
 import android.app.ActivityManager
10
+import android.app.AlertDialog
10
 import android.content.ComponentName
11
 import android.content.ComponentName
11
 import android.content.Context
12
 import android.content.Context
12
 import android.content.Intent
13
 import android.content.Intent
20
 import android.provider.Settings
21
 import android.provider.Settings
21
 import android.view.MotionEvent
22
 import android.view.MotionEvent
22
 import android.view.View
23
 import android.view.View
24
+import android.view.WindowManager
23
 import android.widget.Button
25
 import android.widget.Button
24
 import android.widget.EditText
26
 import android.widget.EditText
25
 import android.widget.LinearLayout
27
 import android.widget.LinearLayout
57
 import com.xhly.corelib.utils.LogShow
59
 import com.xhly.corelib.utils.LogShow
58
 import com.xhly.corelib.utils.ModelNameUtils
60
 import com.xhly.corelib.utils.ModelNameUtils
59
 import com.xhly.corelib.utils.NetworkUtils
61
 import com.xhly.corelib.utils.NetworkUtils
60
-import com.xhly.corelib.utils.SharedPreferencesUtils
61
 import com.xhly.corelib.utils.SystemUtil
62
 import com.xhly.corelib.utils.SystemUtil
62
 import com.xhly.manageapp.AppAdapter
63
 import com.xhly.manageapp.AppAdapter
63
 import com.xhly.manageapp.ManageApplication
64
 import com.xhly.manageapp.ManageApplication
1094
 
1095
 
1095
             Const.CODE2001.toString() -> {
1096
             Const.CODE2001.toString() -> {
1096
                 val message = uiEvent.message
1097
                 val message = uiEvent.message
1097
-                showNoticeDialog(message)
1098
+                /*
1099
+                showNoticeDialog(message)*/
1100
+                //检查权限
1101
+                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
1102
+                    if (!Settings.canDrawOverlays(this)) {
1103
+                        //启动Activity让用户授权
1104
+                        val intent = Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION)
1105
+                        startActivity(intent)
1106
+                        return
1107
+                    }else{
1108
+                        showSystemNoticeDialog(message)
1109
+                    }
1110
+                }
1098
             }
1111
             }
1099
 
1112
 
1100
             Const.CODE2002.toString() -> {
1113
             Const.CODE2002.toString() -> {
1336
         }
1349
         }
1337
     }
1350
     }
1338
 
1351
 
1352
+    /**
1353
+     * 系统级别的通知
1354
+     */
1355
+    private fun showSystemNoticeDialog(msg: String) {
1356
+        val v=View.inflate(this,R.layout.layout_notice_dialog,null)
1357
+        val closeBtn = v.findViewById<Button>(R.id.dialog_close_btn)
1358
+        val titleTv = v.findViewById<TextView>(R.id.dialog_title_tv)
1359
+        val contentTv = v.findViewById<TextView>(R.id.dialog_content_tv)
1360
+        try {
1361
+            val msgBean = GsonUtils.parseJsonWithGson(
1362
+                msg, SocketMsgBean().javaClass
1363
+            ) as SocketMsgBean
1364
+            titleTv.text = msgBean.title
1365
+            contentTv.text = msgBean.content
1366
+        } catch (e: Exception) {
1367
+            LogShow("解析失败" + e.toString())
1368
+        }
1369
+
1370
+        val dialog =
1371
+            AlertDialog.Builder(this).create()
1372
+        dialog.setView(v)
1373
+        dialog.setCancelable(false)
1374
+        if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){
1375
+            dialog.window?.setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY)
1376
+        }else{
1377
+            dialog.window?.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)
1378
+        }
1379
+        dialog.show()
1380
+        closeBtn.setOnClickListener {
1381
+            dialog.dismiss()
1382
+        }
1383
+    }
1384
+
1339
     private fun getAppStoreList(){
1385
     private fun getAppStoreList(){
1340
         try {
1386
         try {
1341
             if (appStroeList.size==0){
1387
             if (appStroeList.size==0){

+ 1
- 0
app/src/main/java/com/xhly/manageapp/utils/StrategyUtils.kt View File

447
                 Const.CURRENTAPPPKG,
447
                 Const.CURRENTAPPPKG,
448
                 Const.CURRENTAPPPKG + ".ui.ManageActivity"
448
                 Const.CURRENTAPPPKG + ".ui.ManageActivity"
449
             )
449
             )
450
+            //ManageApplication.enableOverlayWindow()
450
             if (Const.isDebug){
451
             if (Const.isDebug){
451
                 ManageApplication.setPackageEnabled("com.xhly.easystud", true)
452
                 ManageApplication.setPackageEnabled("com.xhly.easystud", true)
452
                 ManageApplication.setUrlWhiteListEnable(false)
453
                 ManageApplication.setUrlWhiteListEnable(false)

Loading…
Cancel
Save