Kivy + PyJnius 检查安卓版本

Posted

技术标签:

【中文标题】Kivy + PyJnius 检查安卓版本【英文标题】:Kivy + PyJnius check android version 【发布时间】:2017-11-15 08:46:14 【问题描述】:

有没有办法直接从 python 或 pyjnius 获取 android 版本(4 或 5 或 6 或 7)?

如果有,谁能举个例子?

我尝试了kivy.platform,但它只告诉我它是否是 android 并且使用 python 中的platform.release 给了我 linux 版本

【问题讨论】:

【参考方案1】:

您可以使用 pyjnius 通过 Java API 检索版本,例如描述。 here.

【讨论】:

【参考方案2】:

您可以使用我来自here 的模块(在页面上单击下载> 仅文件)并将下载的文件放入您的kivy 项目的文件夹中。添加到您的 .py 文件中:

import PyAndroid

现在你可以使用了:

print(PyAndroid.android_version())

打印android版本或

print(PyAndroid.android_name())

打印安卓名称

对于所有功能,您可以阅读documentation。

希望对我有所帮助:D

【讨论】:

这个项目网站现在已经死了。该代码仍可在 PyPi 上找到,但没有文档也没有支持。剧透:它在名为“/system/build.prop”的文件中查找“ro.build.version.release”和“ro.build.version.sdk”的条目。请考虑在将代码包含在项目中之前对其进行审查和重构。 @Oddthinking 是的,我知道。我 11 岁的时候就在做这个项目。现在它已经过时了(从那时起,android 权限发生了变化,现在某些 android 版本中的非 root 用户甚至没有读取文件 /system/build.prop 的权限)。我将把这个“项目”保留在 PyPi 上,因为它可能对某人有用,但目前它没有任何实际用途。顺便说一句,感谢您的关注;)【参考方案3】:

我也有同样的问题。我想知道版本以决定是否引用 SDK 23 之前的版本中不存在的特定类。

然后我意识到有更好的方法。

try:
    AudioFocusRequest = autoclass('android.media.AudioFocusRequest')
except jnius.JavaException:
    # Not available on earlier versions of Android.
    AudioFocusRequest = None

现在,我不需要知道实际的版本是什么,也不会有任何错误导致阈值错误。我只是在使用前检查 AutoFocusRequest 是否存在。

【讨论】:

以上是关于Kivy + PyJnius 检查安卓版本的主要内容,如果未能解决你的问题,请参考以下文章

pyjnius 通过包名获取其他应用程序的名称

在 Windows、Linux 等上运行 pyjnius

从 kivy 导入 pyjnius

如何使用 kivy、pyjnius 为 android 制作 GPS 应用程序?

Pyjnius,用于使用 Kivy 登录按钮的 Facebook/Google SDK

通过 pyjnius 在 kivy 中使用 MediaStore