我正在创建一个应用程序,在其中使用了FCM。它在某些设备上运行良好,但在一些设备上(如OPPO、红米5 Pro)在应用程序关闭后无法接收消息。因此,我需要做什么才能确保每次在每个设备上都能接收到消息。
我正在创建一个应用程序,在其中使用了FCM。它在某些设备上运行良好,但在一些设备上(如OPPO、红米5 Pro)在应用程序关闭后无法接收消息。因此,我需要做什么才能确保每次在每个设备上都能接收到消息。
val intent = Intent()
val manufacturer = android.os.Build.MANUFACTURER
when {
"xiaomi".equals(manufacturer, ignoreCase = true) -> intent.component = ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity")
"oppo".equals(manufacturer, ignoreCase = true) -> intent.component = ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity")
"vivo".equals(manufacturer, ignoreCase = true) -> intent.component = ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity")
"Letv".equals(manufacturer, ignoreCase = true) -> intent.component = ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity")
"Honor".equals(manufacturer, ignoreCase = true) -> intent.component = ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity")
}
val list = applicationContext.packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
if (list.size > 0) {
applicationContext.startActivity(intent)
}
对于技术熟练的用户,这种方法可能有效,但如果你使用这种技巧却没有得到太多结果,也不要感到惊讶。
我也曾面临过这个问题。如需详细解释,请参阅此处。
FirebaseMessagingService
中尝试使用android:stopWithTask="false"
。 - AskNilesh