官方的一些资料:
Create a package for Android Buildozer Packaging with python-for-android Packaging your application for the Kivy Launcher Release on the market Targeting Android The Kivy Android Virtual Machine Introduction Getting started Building the APK Hints and tips Kivy on Android Package for Android Debugging your application on the Android platform Using Android APIs Status of the Project and Tested Devices另外单独搜了下:
要通过python控制android蓝牙,需先通过Pyjnius去控制android java api…….
蛋疼蛋疼蛋疼,不想写java就是这样~
来自网上的示例:
''' Bluetooth/Pyjnius example ========================= This was used to send some bytes to an arduino via bluetooth. The app must have BLUETOOTH and BLUETOOTH_ADMIN permissions (well, i didn't tested without BLUETOOTH_ADMIN, maybe it works.) Connect your device to your phone, via the bluetooth menu. After the pairing is done, you'll be able to use it in the app. ''' from jniusimport autoclass BluetoothAdapter = autoclass('android.bluetooth.BluetoothAdapter') BluetoothDevice = autoclass('android.bluetooth.BluetoothDevice') BluetoothSocket = autoclass('android.bluetooth.BluetoothSocket') UUID = autoclass('java.util.UUID') def get_socket_stream(name): paired_devices = BluetoothAdapter.getDefaultAdapter().getBondedDevices().toArray() socket = None for device in paired_devices: if device.getName() == name: socket = device.createRfcommSocketToServiceRecord( UUID.fromString("00001101-0000-1000-8000-00805F9B34FB")) recv_stream = socket.getInputStream() send_stream = socket.getOutputStream() break socket.connect() return recv_stream, send_stream if __name__ == '__main__': recv_stream, send_stream = get_socket_stream('linvor') send_stream.write('hello\n') send_stream.flush() # Same as before, with a kivy-based UI ''' Bluetooth/Pyjnius example ========================= This was used to send some bytes to an arduino via bluetooth. The app must have BLUETOOTH and BLUETOOTH_ADMIN permissions (well, i didn't tested without BLUETOOTH_ADMIN, maybe it works.) Connect your device to your phone, via the bluetooth menu. After the pairing is done, you'll be able to use it in the app. ''' from jniusimport autoclass BluetoothAdapter = autoclass('android.bluetooth.BluetoothAdapter') BluetoothDevice = autoclass('android.bluetooth.BluetoothDevice') BluetoothSocket = autoclass('android.bluetooth.BluetoothSocket') UUID = autoclass('java.util.UUID') def get_socket_stream(name): paired_devices = BluetoothAdapter.getDefaultAdapter().getBondedDevices().toArray() socket = None for device in paired_devices: if device.getName() == name: socket = device.createRfcommSocketToServiceRecord( UUID.fromString("00001101-0000-1000-8000-00805F9B34FB")) recv_stream = socket.getInputStream() send_stream = socket.getOutputStream() break socket.connect() return recv_stream, send_stream if __name__ == '__main__': kv = ''' BoxLayout: Button: text: '0' on_release: app.reset([b1, b2, b3, b4, b5]) ToggleButton: id: b1 text: '1' on_release: app.send(self.text) ToggleButton: id: b2 text: '2' on_release: app.send(self.text) ToggleButton: id: b3 text: '3' on_release: app.send(self.text) ToggleButton: id: b4 text: '4' on_release: app.send(self.text) ToggleButton: id: b5 text: '5' on_release: app.send(self.text) ''' from kivy.langimport Builder from kivy.appimport App class Bluetooth(App): def build(self): self.recv_stream, self.send_stream = get_socket_stream('linvor') return Builder.load_string(kv) def send(self, cmd): self.send_stream.write('{}\n'.format(cmd)) self.send_stream.flush() def reset(self, btns): for btnin btns: btn.state = 'normal' self.send('0\n') Bluetooth().run()所以说现阶段,使用python开发android程序,非但不会方便,还会有各种问题。唯一的好处只是python看着舒服点。