Python:检测Android
Python: Detect Android
我很惊讶地发现关于这个主题的信息很少。我想检测用户是否 运行 Android。我正在使用:
platform.dist()
这可以完美地检测所有操作系统和不同的 Linux 发行版。然而,当 运行 这个在 Android 上时,它的系统名称总是返回为 "Linux"。有没有办法检测Android?我不想包含任何第 3 方模块,因为这必须尽可能便携。我可以在 try-catch 中调用一些特定的 Android 函数吗?
返回系统名称 'Linux' 因为 Android 也是基于 Linux Kernel.Android 是发行版的名称,但在其深处 linux .
您可以使用 Kivy
from kivy.utils import platform
if platform == 'android':
# do something
编辑:
As I said, I cannot use any 3rd party libs
Take a look at how Kivy implemented it.
def _get_platform():
# On Android sys.platform returns 'linux2', so prefer to check the
# presence of python-for-android environment variables (ANDROID_ARGUMENT
# or ANDROID_PRIVATE).
if 'ANDROID_ARGUMENT' in environ:
return 'android'
from os import environ
if 'ANDROID_BOOTLOGO' in environ:
print("Android!")
else:
print("!Android")
这是一个非常简单的方法,你可以在没有 kivy 的情况下或使用 kivy 模块使用 hpcomt 模块来做到这一点
import hpcomt
os_name = hpcomt.Name()
print(os_name)
# Output
# Android
从 Python 3.7 开始,您可以检查是否存在 sys.getandroidapilevel()
:
import sys
if hasattr(sys, 'getandroidapilevel'):
# Yes, this is Android
else:
# No, some other OS
我很惊讶地发现关于这个主题的信息很少。我想检测用户是否 运行 Android。我正在使用:
platform.dist()
这可以完美地检测所有操作系统和不同的 Linux 发行版。然而,当 运行 这个在 Android 上时,它的系统名称总是返回为 "Linux"。有没有办法检测Android?我不想包含任何第 3 方模块,因为这必须尽可能便携。我可以在 try-catch 中调用一些特定的 Android 函数吗?
返回系统名称 'Linux' 因为 Android 也是基于 Linux Kernel.Android 是发行版的名称,但在其深处 linux .
您可以使用 Kivy
from kivy.utils import platform
if platform == 'android':
# do something
编辑:
As I said, I cannot use any 3rd party libs
Take a look at how Kivy implemented it.
def _get_platform():
# On Android sys.platform returns 'linux2', so prefer to check the
# presence of python-for-android environment variables (ANDROID_ARGUMENT
# or ANDROID_PRIVATE).
if 'ANDROID_ARGUMENT' in environ:
return 'android'
from os import environ
if 'ANDROID_BOOTLOGO' in environ:
print("Android!")
else:
print("!Android")
这是一个非常简单的方法,你可以在没有 kivy 的情况下或使用 kivy 模块使用 hpcomt 模块来做到这一点
import hpcomt
os_name = hpcomt.Name()
print(os_name)
# Output
# Android
从 Python 3.7 开始,您可以检查是否存在 sys.getandroidapilevel()
:
import sys
if hasattr(sys, 'getandroidapilevel'):
# Yes, this is Android
else:
# No, some other OS