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