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 检查安卓版本的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 kivy、pyjnius 为 android 制作 GPS 应用程序?