Commit 7c09e700 authored by wanglei's avatar wanglei

...

parent add7c9f7
...@@ -6,14 +6,16 @@ ...@@ -6,14 +6,16 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <!-- fcm 添加以下权限 --> <!-- fcm 添加以下权限 -->
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<queries> <queries>
<intent> <intent>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
...@@ -245,10 +247,11 @@ ...@@ -245,10 +247,11 @@
android:value="true" /> android:value="true" />
<meta-data <meta-data
android:name="com.google.android.gms.ads.flag.NATIVE_AD_DEBUGGER_ENABLED" android:name="com.google.android.gms.ads.flag.NATIVE_AD_DEBUGGER_ENABLED"
android:value="false" /> <!-- 常驻通知栏 --> android:value="false" />
<!-- 常驻通知栏 -->
<service <service
android:name=".service.StayNotificationService" android:name=".service.StayNotificationService"
android:permission="android.permission.FOREGROUND_SERVICE" /> android:foregroundServiceType="dataSync" />
<service <service
android:name=".fcm.MessagingService" android:name=".fcm.MessagingService"
android:exported="true"> android:exported="true">
...@@ -259,7 +262,9 @@ ...@@ -259,7 +262,9 @@
<receiver <receiver
android:name=".fcm.CloseNotificationReceiver" android:name=".fcm.CloseNotificationReceiver"
android:exported="false" /> <!-- 添加以下接收器 --> android:exported="false" />
<!-- 添加以下接收器 -->
<!-- 注册广播 --> <!-- 注册广播 -->
<receiver <receiver
android:name=".fcm.FcmReceiver" android:name=".fcm.FcmReceiver"
...@@ -281,7 +286,9 @@ ...@@ -281,7 +286,9 @@
<meta-data <meta-data
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" /> android:resource="@xml/file_paths" />
</provider> <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 --> </provider>
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data <meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID" android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713" /> android:value="ca-app-pub-3940256099942544~3347511713" />
......
package com.base.filerecoveryrecyclebin.service package com.base.filerecoveryrecyclebin.service
import android.Manifest.permission.FOREGROUND_SERVICE_DATA_SYNC
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Notification import android.app.Notification
import android.app.NotificationChannel import android.app.NotificationChannel
...@@ -8,6 +9,7 @@ import android.app.PendingIntent ...@@ -8,6 +9,7 @@ import android.app.PendingIntent
import android.app.Service import android.app.Service
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.ServiceInfo
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.graphics.drawable.Icon import android.graphics.drawable.Icon
import android.os.Build import android.os.Build
...@@ -17,6 +19,7 @@ import android.provider.MediaStore ...@@ -17,6 +19,7 @@ import android.provider.MediaStore
import android.widget.RemoteViews import android.widget.RemoteViews
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat
import androidx.core.app.ServiceCompat
import androidx.core.graphics.drawable.IconCompat import androidx.core.graphics.drawable.IconCompat
import com.base.filerecoveryrecyclebin.R import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.activity.MainActivity import com.base.filerecoveryrecyclebin.activity.MainActivity
...@@ -29,6 +32,7 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_PHOTOS ...@@ -29,6 +32,7 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_VIDEOS import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_VIDEOS
import com.base.filerecoveryrecyclebin.help.FileHelp import com.base.filerecoveryrecyclebin.help.FileHelp
import com.base.filerecoveryrecyclebin.utils.LogEx import com.base.filerecoveryrecyclebin.utils.LogEx
import com.mbridge.msdk.playercommon.exoplayer2.offline.DownloadService.startForeground
import java.io.File import java.io.File
import kotlin.random.Random import kotlin.random.Random
...@@ -48,10 +52,11 @@ class StayNotificationService : Service() { ...@@ -48,10 +52,11 @@ class StayNotificationService : Service() {
var isRunning = false var isRunning = false
fun Context.startStayNotification() { fun Context.startStayNotification() {
val intent = Intent(this, StayNotificationService::class.java)
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.TIRAMISU) { if (Build.VERSION.SDK_INT > Build.VERSION_CODES.TIRAMISU) {
return
} }
val intent = Intent(this, StayNotificationService::class.java)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForegroundService(intent) startForegroundService(intent)
} else { } else {
...@@ -61,17 +66,23 @@ class StayNotificationService : Service() { ...@@ -61,17 +66,23 @@ class StayNotificationService : Service() {
} }
@SuppressLint("ForegroundServiceType")
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
if (fileObserver == null) { if (fileObserver == null) {
fileObserver = FileObserverExample() fileObserver = FileObserverExample()
fileObserver?.startObserving() fileObserver?.startObserving()
} }
if (!isRunning) { if (!isRunning) {
val notification = createPermanentNotification(applicationContext) val notification = createPermanentNotification(applicationContext)
startForeground(1, notification) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
startForeground(1, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC)
} else {
startForeground(1, notification)
}
isRunning = true isRunning = true
} }
return START_STICKY return START_STICKY
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment