有没有办法获得手机当前正在运行的API版本?
当前回答
很简单:
String manufacturer = Build.MANUFACTURER;
String model = Build.MODEL;
int version = Build.VERSION.SDK_INT;
String versionRelease = Build.VERSION.RELEASE;
Log.e("MyActivity", "manufacturer " + manufacturer
+ " \n model " + model
+ " \n version " + version
+ " \n versionRelease " + versionRelease
);
输出:
E/MyActivity: manufacturer ManufacturerX
model SM-T310
version 19
versionRelease 4.4.2
其他回答
android.os.Build.VERSION.SDK应该给出API级别的值。你可以很容易地在android文档中找到api级别到android版本的映射。我认为,8代表2.2,7代表2.1,以此类推。
试试这个:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
// only for gingerbread and newer versions
}
SDK。INT支持Android 1.6及以上版本
所有版本都支持SDK
所以我这样做:
String sdk_version_number = android.os.Build.VERSION.SDK;
出处:CommonsWare
Build.VERSION.RELEASE;
这将给你你的版本的实际数字;又名2.3.3或2.2。 使用Build.VERSION的问题。SDK_INT是如果你有一个根手机或自定义rom,你可能有一个非标准的操作系统(也就是我的android是运行2.3.5),这将返回null时使用Build.VERSION。所以Build.VERSION.RELEASE无论是否使用标准Android版本都可以正常工作!
要使用它,你可以这样做;
String androidOS = Build.VERSION.RELEASE;
明白了。它使用Context类的getApplicationInfo()方法。
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件