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

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

如果有,谁能举个例子?

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

【问题讨论】:

    标签: android python kivy pyjnius


    【解决方案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 是否存在。

      【讨论】:

        猜你喜欢
        • 2015-02-21
        • 2021-06-13
        • 2016-09-05
        • 2018-11-24
        • 2016-03-27
        • 2011-05-18
        • 1970-01-01
        相关资源
        最近更新 更多