gpt4 book ai didi

android - Delphi - Google Play 上的新应用程序必须以 Android 8(API 级别 26)为目标 - 在后台推送通知

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:10:23 25 4
gpt4 key购买 nike

从 2018 年 8 月起,Google Play 上的所有新应用都必须以 Android 8(API 级别 26)或更高版本为目标平台,并且从 2018 年 11 月起,Google Play 上的所有应用更新都必须与 Google Play 上的应用相同。

现在,您必须上传针对 Android 8 的新应用的唯一方法是编辑文件 AndroidManifest.template.xml 并替换targetSdkVersion = "% targetSdkVersion%"经过:安卓:targetSdkVersion = "26"

问题是,从那一刻起,应用程序就受到了 Android O 引入的限制。被认为是危险的权限(相机、位置、短信等)不会仅仅因为包含它们而被授予应用程序在 AndroidManifest 文件中。告别相机,告别 GPS,......

在此网站中,您可以按照几个简单的步骤开始向用户请求权限: http://delphiworlds.com/2018/05/targeting-android-8-and-higher/

但是,目标 Android 8 具有更多含义。我的应用程序,仅仅因为将 targetSDKVersion 从 25 更改为 26 而在应用程序未运行(或在后台)时未收到推送通知。

我的测试很简单:我更改了 targetSDK,它不再工作了。我倒带,它再次运行,应用程序正在运行,应用程序处于后台或关闭状态。

关键是 TARGETSDKVERSION 的变化,因为我一直尝试在 SDK 管理器中选择 SDK 24.3.3。

我认为主要原因之一是 Android O 中后台服务的消失,正如他们在 https://blog.klinkerapps.com/android-o-background-services/ 中解释的那样但我不确定。

我的大问题。

我刚刚将 Android 7(25 级)应用程序上传到 Google Play。问题是,从 2018 年 11 月开始,如果我不将 TARGETSDKVERSION 更改为级别 26,我将无法上传更新。但如果我这样做了......我将停止接收推送通知,并且没有推送通知,我的应用程序无法运行对于任何事情。

我承认我有点害怕这个

对不起我的英语。

非常感谢。

最佳答案

您必须确保您的通知具有高优先级,FCM 会立即发布

FCM attempts to deliver high priority messages immediately, allowing the FCM service to wake a sleeping device when necessary and to run some limited processing (including very limited network access). High priority messages generally should result in user interaction with your app. If FCM detects a pattern in which they don't, your messages may be de-prioritized

如果您的用户与通知交互,FCM 不会延迟它。 Android O 在某些情况下可能不允许后台服务,但这并不意味着您不能发送通知

如果您不使用通知 channel ,您的通知也不会显示,您可以使用此代码创建通知 channel

public void initChannels(Context context) {
if (Build.VERSION.SDK_INT < 26) {
return;
}
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationChannel channel = new NotificationChannel("default",
"Channel name",
NotificationManager.IMPORTANCE_DEFAULT);
channel.setDescription("Channel description");
notificationManager.createNotificationChannel(channel);

关于android - Delphi - Google Play 上的新应用程序必须以 Android 8(API 级别 26)为目标 - 在后台推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50549970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com