2016-03-11 3 views
-1

Я пытался создать приложение для Android, чтобы проверить, включен ли Wi-Fi телефона. Что я пытаюсь сделать, если Wi-Fi включен, тогда отображается BoxLayout, который имеет белый цвет и если он не включен, тогда он показывает всплывающее окно. Я новичок в Android Development, и я попал в Kivy из-за своей простоты и любви к Python. Я пробовал следующие документы Pyjnius, но я не мог заставить приложение работать. Поэтому я отправлю код здесь:Android-приложение, чтобы проверить, включено ли Wi-Fi или нет

from kivy.app import App 
from kivy.uix.boxlayout import BoxLayout 
from kivy.uix.popup import Popup 
from kivy.uix.button import Button 
from kivy.lang import Builder 
from jnius import autoclass 

Builder.load_string(''' 
<WiFiENABLED> 
    canvas.before: 
     Color: 
      rgb: 1, 1, 1 
     Rectangle: 
      pos: self.pos 
      size: self.size 

<WiFiDISABLED> 
    BoxLayout: 
     orientation: 'vertical' 
     Label: 
      text:"Wifi is turned off" 
     Button: 
      text:"OK" 

<Box> 
    Label: 
     text: "WiFi Tester" 
''') 

class WiFiENABLED(BoxLayout): 
    def wfenabled(self): 
     pass 

class WiFiDISABLED(Popup): 
    def wfdisabled(self): 
     pass 

class WiFiStatus(): 
    def WiFi(self): 
     WiFi_Status = autoclass('android.net.wifi.WiFiManager') 
     WiFi = WiFi_Status.getSystemService(Context.WIFI_SERVICE) 

     if WiFi.getWifiState() == WiFi.WIFI_STATE_ENABLED: 
      return WiFiENABLED() 

     elif WiFi.getWifiState() == WiFi.WIFI_STATE_DISABLED: 
      return WiFiDISABLED() 

class Box(BoxLayout): 
    def b(self): 
     return WiFiStatus() 

class WF(App): 
    def build(self): 
     return Box() 

if __name__ == "__main__": 
    WF().run() 

И должен ли я вносить изменения в разрешения в файле builder.spec? На данный момент это просто ИНТЕРНЕТ.

+0

Проверьте эту ссылку: http://stackoverflow.com/questions/3930990/android-how-to-enable-disable-wifi-or-internet-connection-programmatically – RetroCoder

ответ

1

В моем проекте я использовал эту функцию (как для WiFi и мобильного интернета):

from kivy.utils import platform 
from jnius import autoclass 


def check_connectivity(): 
    if platform != 'android': 
     raise Exception('run me on android device') 

    Activity = autoclass('android.app.Activity') 
    PythonActivity = autoclass('org.renpy.android.PythonActivity') 
    activity = PythonActivity.mActivity 
    ConnectivityManager = autoclass('android.net.ConnectivityManager') 

    con_mgr = activity.getSystemService(Activity.CONNECTIVITY_SERVICE) 

    conn = con_mgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting() 
    if conn: 
     return True 
    else: 
     conn = con_mgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting() 
     if conn: 
      return True 
     else: 
      return False 

Он возвращает True, если Интернет доступен, и False, если нет.

Смежные вопросы