Qpython Bluetooth parche permiso de administrador
Qpython para android es muy útil para conseguir una idea en funcionamiento rápidamente. Hay un problema con sus permisos bluetooth aunque lo que significa que cada vez que se ejecuta ninguna función relacionada con Bluetooth, se produce un error de permisos. A veces, el mensaje de error dice algo sobre Bluetooth que requiera permiso de administrador para ser usada, pero en este caso he recibido un mensaje conexión rechazada:


Después de buscar en línea, sólo había un mensaje relacionado con este en un foro. Por suerte un usuario sugirió que descompilación el archivo APK, editando el archivo AndroidManifest.xml para dar el App Qpython los permisos correctos y luego reconstruir el archivo .apk debe solucionar el problema. Para trabajar con el archivo apk utilicé apktool para la descompilación y la reconstrucción. Estos son los comandos utilizados:
Coloque el archivo .apk (en este caso Retitulé mina para test.apk) en el mismo directorio que el archivo apktool.jar y ejecute el siguiente comando para descompilar el archivo apk:
java-jar d test.apk
Después se descompila el archivo, abrir el AndroidManifest.xml y añadir en la línea siguiente:
<Usa-permiso android: name = "android.permission.BLUETOOTH_ADMIN" />
Así que ahora queremos reconstruir el archivo APK. Esto se hace con el comando siguiente: (Sólo asegúrese de puntos dada la dirctory a la carpeta que contiene el archivo .apk descompilada)
java-jar apktool.jar b / usr / local / bin / test
Así que ahora el archivo .apk ha sido reconstruido. Ahora se necesita ser firmado antes de que pueda ser instalado en un teléfono Android. SignAPK se utilizó para esto. Este es el comando utilizado:
java-jar signapk.jar certificate.pem key.pk8 test.apk test_signed.apk
Esto se llevará a test.apk, firmarlo y test_signed.apk salida. Ahora, la aplicación puede ser transferida a un teléfono inteligente e instalado. Después de que se instala la aplicación modificada he conseguido encontrar y conectarse con mi computadora sin errores. Aquí es lo que parecía en el terminal:


Aquí está la secuencia de comandos Qpython utilizado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #qpy:consolefrom androidhelper import Androiddroid = Android()droid.toggleBluetoothState(True)# turn on bluetoothif droid.checkBluetoothState().result == True: print 'Bluetooth is on'else: print "could not turn on bluetooth"print " Phone info:" + str(droid.bluetoothGetLocalName())print "Computer info: " + str(droid.bluetoothGetRemoteDeviceName(address='88:53:2E:E8:65:4C'))droid.bluetoothConnect(address='88:53:2E:E8:65:4C') # connect to computerprint "Active connections : " + str(droid.bluetoothActiveConnections()) |
No hay comentarios: