首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android上使用pyjnius连接到wifi网络

在android上使用pyjnius连接到wifi网络
EN

Stack Overflow用户
提问于 2020-12-18 21:20:45
回答 1查看 240关注 0票数 0

我正在为Android做一个扫描Wi-Fi网络的应用程序,我已经发现了如何在Android中使用pyjnius来扫描Wi-Fi网络,但我仍然不知道如何使用pyjnius连接Wi-Fi网络,我已经看到了如何在kotlin中做到这一点,我也尝试过用pyjnius做同样的事情,但它对我不起作用,这是我的代码

代码语言:javascript
复制
      def conect(self):
        Contexto = autoclass('android.content.Context')
        ConnectivityManager =  autoclass('android.net.ConnectivityManager')
        WifiConfiguration = autoclass('android.net.wifi.WifiConfiguration')
        WifiManager = autoclass('android.net.wifi.WifiManager')
        Actividad = autoclass('android.app.Activity')
        PythonActivity = autoclass('org.renpy.android.PythonActivity')
        activity = PythonActivity.mActivity

        service = activity.getSystemService(Contexto.WIFI_SERVICE)
                   
        #String = jnius.autoclass("java.lang.String")

        WifiConfiguration.SSID ="TURBONETT_295786"
        WifiConfiguration.preSharedKey =  "KMgApsqz"
        p = service.addNetwork(WifiConfiguration)
        #service.getConfiguredNetworks()
        service.disconnect()  
        service.enableNetwork(p, True) 
        #service.startScan() 
        
       
        service.reconnect() 

当我运行这个函数时,我得到了这个错误

代码语言:javascript
复制
jnius.jnius.JavaException: JVM exception occurred: Illegal reason value: 6619241

如果有人能告诉我我做得不对,我会非常感激的,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-01 00:50:17

我已经设法让它工作了,这是一个如何用kivy和Pyjnius连接到Wifi网络的小例子,我希望它能帮助一些人,欢迎你。

代码语言:javascript
复制
import kivy
from jnius import  autoclass
from kivymd.app import  MDApp
from kivy.lang.builder import Builder
import kivymd
from kivymd.uix.button import  MDRoundFlatButton
from kivy.uix.screenmanager import ScreenManager, Screen
from kivymd.toast import toast


String = autoclass('java.lang.String')

WifiConfigure = autoclass('android.net.wifi.WifiConfiguration')

PythonActivity = autoclass('org.kivy.android.PythonActivity')
activity = PythonActivity.mActivity
 
service = activity.getSystemService("wifi")
                    
WifiManager = autoclass('android.net.wifi.WifiManager')
#The WifiManager methods are static which means that you do not have to instantiate the class

WifiConfig = WifiConfigure()
#Instant the class since its methods are public and not static





Builder.load_string('''

<Principal>:
    MDRoundFlatButton:
        text: 'Conectar'
        pos_hint: {"center_x": .5, "center_y": .64}   
        on_press:
            root.Conectar() 

    MDCard:
        id: dos
        elevation: 0
        padding: '0dp'
        size_hint: .95, .07
        pos_hint: {"center_x": .5, "center_y": .85}
        border_radius: 20
        radius: [10] 
    TextInput:
        id: t1
        text: ''
        hint_text: 'Nombre de la Red'
        pos_hint: {"center_x": .55, "center_y": .84}
        size_hint: .7, .05 
        text_color: 1, 1, 1, 1
        multiline: False
        background_color: 0,0,0,0
        foreground_color: 1,1,1,1
    MDCard:
        id: dos
        elevation: 0
        padding: '0dp'
        size_hint: .95, .07
        pos_hint: {"center_x": .5, "center_y": .75}
        border_radius: 20
        radius: [10] 
    TextInput:
        id: t2
        text: ''
        hint_text: 'Contraseña'
        pos_hint: {"center_x": .55, "center_y": .74}
        size_hint: .7, .05 
        text_color: 1, 1, 1, 1
        multiline: False
        background_color: 0,0,0,0
        foreground_color: 1,1,1,1
       
       

''')

class Principal(Screen):
    def __init__(self, **kwargs):
        
        super(Principal, self).__init__(**kwargs)
    def Conectar(self):
     
        toast("Conectando...")
        Connectname = String(self.ids.t1.text)
        connectkey = String(self.ids.t2.text)
        WifiConfig.SSID = "\""+Connectname.toString()+"\""
        WifiConfig.preSharedKey ="\""+ connectkey.toString()+"\""
        
        added = WifiManager.addNetwork(WifiConfig)
        WifiManager.enableNetwork(added, True)
        

class Inicia (MDApp):
    def build(self):
        self.theme_cls.theme_style = 'Dark'
        hijo = ScreenManager()
        princ = Principal(name="principal")
        hijo.add_widget(princ)
        return hijo                                                   
Inicia().run()                 

Made in Pydroid3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65357795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档