= Build.VERSION_CODES.O) {"的用途是什么?-6ren"> = Build.VERSION_CODES.O) {"的用途是什么?-我正在实现 Firebase Cloud Messaging Quickstart 示例项目,网址为 https://github.com/firebase/quickstart-android/tr-6ren">
gpt4 book ai didi

android - Firebase Cloud Messaging 示例项目中条件 "if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"的用途是什么?

转载 作者:行者123 更新时间:2023-11-29 19:05:18 27 4
gpt4 key购买 nike

我正在实现 Firebase Cloud Messaging Quickstart 示例项目,网址为 https://github.com/firebase/quickstart-android/tree/master/messaging ,将其合并到我的应用程序中。在 https://github.com/firebase/quickstart-android/blob/master/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/MainActivity.java我可以看到以下代码块:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Create channel to show notifications.
String channelId = getString(R.string.default_notification_channel_id);
String channelName = getString(R.string.default_notification_channel_name);
NotificationManager notificationManager =
getSystemService(NotificationManager.class);
notificationManager.createNotificationChannel(new NotificationChannel(channelId,
channelName, NotificationManager.IMPORTANCE_LOW));
}

使用条件 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){} 的目的是什么?据我了解,Build.VERSION.SDK_INT 返回安装应用程序的设备的 API 级别,而 Build.VERSION_CODES.O 是我定义的 API在 app/build.gradle 文件中编译的级别,例如:compileSdkVersion 26。如果用户的设备 API 级别低于我用来定义哪个 SDK 版本的 compileSdkVersion,代码是否要求不执行创建 channel 以显示通知的代码正在编译?我不明白那个条件的目的。顺便说一下,我正在使用 API 级别为 23 的手机进行测试,因为我在我的 build.gradle 文件中使用了 compileSdkVersion 26,整个代码块没有被执行。如果您能帮助阐明这段代码的用途,我将不胜感激,当然这不是我写的代码。我从 https://github.com/firebase/quickstart-android/blob/master/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/MainActivity.java 拿来的,但我正在努力理解它。谢谢。

最佳答案

Build.VERSION.SDK_INT:

The SDK version of the software currently running on this hardware device. 

换句话说,这是运行该应用程序的设备的 Android 版本。

Build.VERSION_CODES.O -是对 API 级别 26 的引用(Android Oreo 即 Android 8) https://developer.android.com/reference/android/os/Build.VERSION_CODES

if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) 为 TRUE - 表示运行该应用程序的设备具有 Android SDK 26 或更高版本 - 并且将执行“if”语句中的代码块。

否则- SDK 版本低于 26。(SDK 25 或更低)

What is the purpose of using the condition

@CommonsWare 回答了这个问题

关于android - Firebase Cloud Messaging 示例项目中条件 "if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {"的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47480732/

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