2017-12-29 4 views
-1

Ich bin überrascht, sehr wenig Informationen zu diesem Thema zu finden. Ich möchte feststellen, ob ein Benutzer Android ausführt. Ich benutze:Python: Erkennen Android

platform.dist() 

Dies erkennt perfekt alle Betriebssysteme und verschiedene Linux-Distributionen. Wenn Sie dies jedoch unter Android ausführen, wird der Systemname immer als "Linux" zurückgegeben. Gibt es eine Möglichkeit, Android zu erkennen? Ich möchte keine Module von Drittanbietern hinzufügen, da diese so portabel wie möglich sein müssen. Gibt es vielleicht eine bestimmte Android-Funktion, die ich in einem Try-Catch aufrufen kann?

Antwort

2

Sie können dies tun, mit Kivy

from kivy.utils import platform 

if platform == 'android': 
    # do something 

EDIT:

Wie gesagt, kann ich keine 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' 
+0

Wie gesagt, ich kann keine libs von Drittanbietern verwenden. Das Programm muss portabel sein und nur die Standard-Python-Module verwenden. – goocreations

+1

@goocreations Ich habe meine Antwort bearbeitet. –

0

Der Systemname ist 'Linux' zurückgegeben, weil Android auch auf dem Linux-Kernel basiert. Android ist der Name der Distribution, aber tief in ihrem Linux.

+0

Ja, mir ist das bekannt. Aber ich möchte immer noch wissen, ob das Gerät Android ist oder nicht, so dass ich zwischen Android und anderen Distributionen unterscheiden kann. Alle anderen Distributionsnamen werden zurückgegeben (zB: Ubuntu, Fedora, etc), aber nicht für Android – goocreations