Подключитесь к сети Wi-Fi с помощью pyjnius на Android

Я делаю приложение для Android, которое сканирует сети Wi-Fi, я уже узнал, как использовать pyjnius для сканирования сетей Wi-Fi в Android, но я до сих пор точно не знаю, как я могу подключиться к сети Wi-Fi с помощью pyjnius , я видел, как это можно сделать в kotlin, и я пытался сделать то же самое с pyjnius, но у меня это не работает, это мой код

      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() 

Когда я запустил функцию, я получаю эту ошибку

jnius.jnius.JavaException: JVM exception occurred: Illegal reason value: 6619241

Если кто-то может сказать мне, что я делаю неправильно, я был бы очень признателен, спасибо.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
914
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мне удалось заставить это работать, это небольшой пример того, как подключиться к сети Wi-Fi с помощью kivy и Pyjnius, надеюсь, это кому-то поможет, пожалуйста.

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()                 

Сделано в Pydroid3

Другие вопросы по теме