system alert 权限

This commit is contained in:
renhaoting 2025-12-30 17:25:28 +08:00
parent d632807122
commit c050c4b6ba
4 changed files with 28 additions and 3 deletions

View File

@ -112,9 +112,9 @@ public class PermissionActivity extends AppCompatActivity {
}
}
new AlertDialog.Builder(this)
.setTitle("权限已被拒绝")
.setTitle("Permission has been denied") //.setTitle("权限已被拒绝")
.setMessage(PERMISSION_TOTAL_REJECTED_HINT + unGrantedPermissionsStr)
.setPositiveButton("系统设置", new DialogInterface.OnClickListener() {
.setPositiveButton(/*"系统设置"*/ "System setting", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Uri packageURI = Uri.parse("package:" + getPackageName());
@ -124,7 +124,7 @@ public class PermissionActivity extends AppCompatActivity {
sendResultBroadCast(finalGrantedCount > 0 ? PermissionUtil.PERMISSION_RESULT_PARTIAL_GRANTED : PermissionUtil.PERMISSION_RESULT_ALL_REJECTED);
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
sendResultBroadCast(finalGrantedCount > 0 ? PermissionUtil.PERMISSION_RESULT_PARTIAL_GRANTED : PermissionUtil.PERMISSION_RESULT_ALL_REJECTED);

View File

@ -3,6 +3,8 @@
<!-- 通知权限 -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<!-- 前台服务权限 -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

View File

@ -14,6 +14,7 @@ import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
import com.ama.core.architecture.util.DateUtil
import com.ama.core.architecture.util.permission.PermissionUtil
import com.remax.base.ext.canSendNotification
import com.remax.base.report.DataReportManager
import com.remax.notification.NotifyConst
@ -26,6 +27,7 @@ import com.remax.notification.builder.type2notificationId
import com.remax.notification.check.NotificationCheckController
import com.remax.notification.config.NotificationConfigController
import com.remax.notification.newUtil.NotificationRecorder
import com.remax.notification.newUtil.NotificationUtil
import com.remax.notification.receiver.NotificationDeleteReceiver
import com.remax.notification.timing.NotificationTimingController
import com.remax.notification.utils.NotiLogger
@ -489,6 +491,20 @@ object NotificationTriggerController {
* @return 常驻通知对象
*/
fun buildResidentNotification(context: Context): Notification {
NotificationUtil.getInstance().checkOverlayPermission(object : PermissionUtil.ICallback() {
override fun onAllGranted() {
}
override fun onPartialGranted() {
}
override fun onAllRejected() {
}
})
val residentModel = ResidentModelManger().getModel(context)
if(context.canSendNotification()){
residentTrack(residentModel)

View File

@ -7,6 +7,7 @@ import android.content.Intent
import android.graphics.BitmapFactory
import android.graphics.Color
import android.os.Build
import android.provider.Settings
import android.widget.RemoteViews
import androidx.annotation.RequiresApi
import androidx.annotation.RequiresPermission
@ -488,6 +489,12 @@ class NotificationUtil private constructor() {
) {
showProgressNotification(channelId, title, content, smallIcon, maxProgress, currentProgress, indeterminate, notificationId)
}
fun checkOverlayPermission(callback: PermissionUtil.ICallback) {
PermissionUtil.checkPermission(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, callback)
}
}
/**