Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
S
Super File Manager
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
Super File Manager
Commits
4a5325be
Commit
4a5325be
authored
Jun 04, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
=========同步cleanmastermax的fcm修改===========
parent
ca0af31e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
83 additions
and
12 deletions
+83
-12
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+1
-0
MyApplication.kt
app/src/main/java/com/base/superfilemanager/MyApplication.kt
+17
-12
FCMCheckReceiver.kt
...com/base/superfilemanager/display/fcm/FCMCheckReceiver.kt
+24
-0
FcmHelper.kt
...n/java/com/base/superfilemanager/display/fcm/FcmHelper.kt
+35
-0
MyFirebaseMessagingService.kt
...uperfilemanager/display/fcm/MyFirebaseMessagingService.kt
+6
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
4a5325be
...
@@ -241,6 +241,7 @@
...
@@ -241,6 +241,7 @@
<meta-data
<meta-data
android:name=
"com.facebook.sdk.ApplicationId"
android:name=
"com.facebook.sdk.ApplicationId"
android:value=
"@string/facebook_app_id"
/>
android:value=
"@string/facebook_app_id"
/>
<receiver
android:name=
".display.fcm.FCMCheckReceiver"
/>
</application>
</application>
</manifest>
</manifest>
\ No newline at end of file
app/src/main/java/com/base/superfilemanager/MyApplication.kt
View file @
4a5325be
...
@@ -2,6 +2,10 @@ package com.base.superfilemanager
...
@@ -2,6 +2,10 @@ package com.base.superfilemanager
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.app.Activity
import
android.app.Activity
import
android.app.job.JobInfo
import
android.app.job.JobScheduler
import
android.content.ComponentName
import
android.content.Context
import
android.content.Intent
import
android.content.Intent
import
android.os.Build
import
android.os.Build
import
android.os.Bundle
import
android.os.Bundle
...
@@ -17,6 +21,7 @@ import com.base.superfilemanager.display.ActionBroadcast.Companion.initBroadcast
...
@@ -17,6 +21,7 @@ import com.base.superfilemanager.display.ActionBroadcast.Companion.initBroadcast
import
com.base.superfilemanager.display.NotificationService
import
com.base.superfilemanager.display.NotificationService
import
com.base.superfilemanager.display.NotificationUtils
import
com.base.superfilemanager.display.NotificationUtils
import
com.base.superfilemanager.display.fcm.FcmHelper
import
com.base.superfilemanager.display.fcm.FcmHelper
import
com.base.superfilemanager.display.fcm.NotificationJobService
import
com.base.superfilemanager.helps.BaseApplication
import
com.base.superfilemanager.helps.BaseApplication
import
com.base.superfilemanager.helps.ComUtils.requestCfg
import
com.base.superfilemanager.helps.ComUtils.requestCfg
import
com.base.superfilemanager.helps.ConfigHelper
import
com.base.superfilemanager.helps.ConfigHelper
...
@@ -72,21 +77,21 @@ class MyApplication : BaseApplication() {
...
@@ -72,21 +77,21 @@ class MyApplication : BaseApplication() {
FirebaseApp
.
initializeApp
(
this
)
FirebaseApp
.
initializeApp
(
this
)
FcmHelper
.
getToken
()
FcmHelper
.
getToken
()
FcmHelper
.
subscribeToTopic
()
FcmHelper
.
subscribeToTopic
()
val
isBoolean
=
NotificationUtils
.
isNotificationExist
(
this
,
1
)
FcmHelper
.
startFCMCheckAlarm
(
this
)
if
(
isBoolean
)
{
initJob
()
Log
.
d
(
"MyService"
,
"常驻通知栏存在"
);
return
}
val
intent
=
Intent
(
this
,
NotificationService
::
class
.
java
)
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
startForegroundService
(
intent
)
}
else
{
startService
(
intent
)
}
initBroadcast
()
Log
.
d
(
"MyService"
,
"startService:"
+
Process
.
myPid
());
Log
.
d
(
"MyService"
,
"startService:"
+
Process
.
myPid
());
}
}
private
fun
initJob
()
{
val
jobScheduler
=
getSystemService
(
Context
.
JOB_SCHEDULER_SERVICE
)
as
JobScheduler
val
job
=
JobInfo
.
Builder
(
0
,
ComponentName
(
this
,
NotificationJobService
::
class
.
java
))
.
setMinimumLatency
(
0L
)
.
setOverrideDeadline
(
0L
)
.
setPersisted
(
true
)
.
build
()
jobScheduler
.
schedule
(
job
)
}
@SuppressLint
(
"UnspecifiedRegisterReceiverFlag"
)
@SuppressLint
(
"UnspecifiedRegisterReceiverFlag"
)
private
fun
initLifeListener
()
{
private
fun
initLifeListener
()
{
registerActivityLifecycleCallbacks
(
object
:
ActivityLifecycleCallbacks
{
registerActivityLifecycleCallbacks
(
object
:
ActivityLifecycleCallbacks
{
...
...
app/src/main/java/com/base/superfilemanager/display/fcm/FCMCheckReceiver.kt
0 → 100644
View file @
4a5325be
package
com.base.superfilemanager.display.fcm
import
android.content.BroadcastReceiver
import
android.content.Context
import
android.content.Intent
import
android.util.Log
import
com.base.superfilemanager.helps.EventHelper
import
com.google.firebase.messaging.FirebaseMessaging
class
FCMCheckReceiver
:
BroadcastReceiver
()
{
override
fun
onReceive
(
context
:
Context
?,
intent
:
Intent
?)
{
// 检查FCM连接并重新连接(如果需要)
// 这里可以根据具体需求自行实现
val
boolean
=
FirebaseMessaging
.
getInstance
().
isAutoInitEnabled
()
if
(
boolean
)
{
EventHelper
.
event
(
"fcm_autoInit_suc"
)
}
else
{
EventHelper
.
event
(
"fcm_autoInit_fail"
)
}
Log
.
d
(
"FcmHelper"
,
"FCMCheckReceiver: $boolean"
)
}
}
app/src/main/java/com/base/superfilemanager/display/fcm/FcmHelper.kt
View file @
4a5325be
package
com.base.superfilemanager.display.fcm
package
com.base.superfilemanager.display.fcm
import
android.annotation.SuppressLint
import
android.app.AlarmManager
import
android.app.PendingIntent
import
android.content.Context
import
android.content.Intent
import
android.util.Log
import
android.util.Log
import
com.google.android.gms.tasks.OnCompleteListener
import
com.google.android.gms.tasks.OnCompleteListener
import
com.google.android.gms.tasks.Task
import
com.google.android.gms.tasks.Task
...
@@ -39,4 +44,34 @@ object FcmHelper {
...
@@ -39,4 +44,34 @@ object FcmHelper {
Log
.
d
(
TAG
,
"token: $token"
)
Log
.
d
(
TAG
,
"token: $token"
)
})
})
}
}
@SuppressLint
(
"UnspecifiedImmutableFlag"
)
fun
startFCMCheckAlarm
(
context
:
Context
)
{
val
intervalMillis
=
(
15
*
60
*
1000
).
toLong
()
// 1分钟
// 判断是否已经在运行
val
intent
=
Intent
(
context
,
FCMCheckReceiver
::
class
.
java
)
val
isRunning
=
PendingIntent
.
getBroadcast
(
context
,
0
,
intent
,
PendingIntent
.
FLAG_NO_CREATE
)
!=
null
if
(
isRunning
)
{
Log
.
d
(
TAG
,
"FCM check alarm is already running"
)
return
}
// 获取AlarmManager实例
val
alarmManager
=
context
.
getSystemService
(
Context
.
ALARM_SERVICE
)
as
AlarmManager
// 创建PendingIntent,用于在指定时间触发广播
val
pendingIntent
=
PendingIntent
.
getBroadcast
(
context
,
0
,
intent
,
PendingIntent
.
FLAG_UPDATE_CURRENT
)
// 设置每隔一段时间触发一次广播
val
triggerAtMillis
=
System
.
currentTimeMillis
()
+
intervalMillis
alarmManager
.
setRepeating
(
AlarmManager
.
RTC_WAKEUP
,
triggerAtMillis
,
intervalMillis
,
pendingIntent
)
Log
.
d
(
TAG
,
"FCM check alarm is started"
)
}
}
}
\ No newline at end of file
app/src/main/java/com/base/superfilemanager/display/fcm/MyFirebaseMessagingService.kt
View file @
4a5325be
...
@@ -4,6 +4,7 @@ import android.app.job.JobInfo
...
@@ -4,6 +4,7 @@ import android.app.job.JobInfo
import
android.app.job.JobScheduler
import
android.app.job.JobScheduler
import
android.content.ComponentName
import
android.content.ComponentName
import
android.content.Context
import
android.content.Context
import
android.os.Build
import
android.util.Log
import
android.util.Log
import
com.google.firebase.messaging.FirebaseMessagingService
import
com.google.firebase.messaging.FirebaseMessagingService
import
com.google.firebase.messaging.RemoteMessage
import
com.google.firebase.messaging.RemoteMessage
...
@@ -17,6 +18,11 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
...
@@ -17,6 +18,11 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
val
pushStayTime
=
remoteMessage
.
data
[
"push_stay_time"
]
?.
toLongOrNull
()
?:
0
val
pushStayTime
=
remoteMessage
.
data
[
"push_stay_time"
]
?.
toLongOrNull
()
?:
0
EventHelper
.
event
(
"fcm_message_received"
,
pushStayTime
.
toString
())
EventHelper
.
event
(
"fcm_message_received"
,
pushStayTime
.
toString
())
NotificationUtils
.
sendTimerPush
(
pushStayTime
)
NotificationUtils
.
sendTimerPush
(
pushStayTime
)
FcmHelper
.
startFCMCheckAlarm
(
this
)
if
(
Build
.
VERSION
.
SDK_INT
==
Build
.
VERSION_CODES
.
S
)
{
return
}
initJob
()
initJob
()
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment