2012-09-12 57 views
0

注:也張貼在https://groups.google.com/forum/?fromgroups=#!topic/android-scripting/UsPy3x4jvG0Android的藍牙IOException異常:連接被拒絕

我試圖連接到藍牙RFCOMM設備。我使用sl4a並從Python腳本連接。我有兩個Android設備運行相同的Android版本2.3.4。

在一臺設備上(Galaxy S2非常接近庫存內核,根目錄),腳本運行良好並連接到RFCOMM設備。在其他設備上,我懷疑是異國情調的Winmate E430T(專用堅固的Android手機,體積相當低),我收到了java.io.IOException: Connection refused

我試着運行示例代碼bluetooth_chat.py沒有成功,那是爲了Android與Android的連接。我得到相同的錯誤信息,這表明問題不在我的代碼中,但更多的是Winmate手機的狀態(根源與否,安裝的SW,配置)。

任何人都看到類似的東西?我看到了關於修復的帖子,我嘗試了兩次,但沒有幫助。我也嘗試在安裝Python和所有模塊後重新啓動Winmate。

代碼:

import android 
droid = android.Android() 
address = '00:12:F3:11:DC:D5' 
uuid = '00001101-0000-1000-8000-00805F9B34FB' 
droid.toggleBluetoothState(True) 
droid.bluetoothConnect(uuid, address) 

logcat的摘錄:

V/sl4a.JsonRpcServer:117(27913): Sent: {"error":null,"id":6,"result":{"which":"negative"}} 
V/sl4a.JsonRpcServer:74(27913): Received: {"params": [], "id": 7, "method": "bluetoothConnect"} 
I/ActivityManager(1304): Starting: Intent { flg=0x18000000 cmp=com.googlecode.android_scripting/.activity.FutureActivity (has extras) } from pid 27913 
I/HK/LatinKeyboardBaseView(1385): closing [email protected] 
D/sl4a.ConsoleActivity:761(27913): onResume called 
D/sl4a.ConsoleActivity:746(27913): onPause called 
V/sl4a.FutureActivity:50(27913): FutureActivity created. 
I/ActivityManager(1304): Starting: Intent { cmp=com.googlecode.android_scripting/.activity.BluetoothDeviceList } from pid 27913 
E/BluetoothEventLoop.cpp(1304): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/23550/hci0 
V/BluetoothEventRedirector(1862): Received android.bluetooth.adapter.action.DISCOVERY_STARTED 
I/HK/LatinKeyboardBaseView(1385): closing [email protected] 
E/BluetoothEventLoop.cpp(1304): event_filter: Received signal org.bluez.Adapter:DeviceFound from /org/bluez/23550/hci0 
D/BluetoothService(1304): updateDeviceServiceChannelCache(00:12:F3:11:DC:D5) 
V/BluetoothEventRedirector(1862): Received android.bluetooth.device.action.FOUND 
E/BluetoothEventLoop.cpp(1304): event_filter: Received signal org.bluez.Adapter:DeviceFound from /org/bluez/23550/hci0 
D/BluetoothService(1304): updateDeviceServiceChannelCache(0C:DF:A4:78:99:50) 
I/ActivityManager(1304): Displayed com.googlecode.android_scripting/.activity.BluetoothDeviceList: +449ms (total +519ms) 
D/BluetoothService(1304): uuid(system): 00001105-0000-1000-8000-00805f9b34fb 3 
V/BluetoothEventRedirector(1862): Received android.bluetooth.device.action.FOUND 
D/wpa_supplicant(19159): CMD: DRIVER RSSI-APPROX 
D/wpa_supplicant(19159): wpa_driver_tista_driver_cmd RSSI-APPROX 
D/wpa_supplicant(19159): rssi-approx command 
D/wpa_supplicant(19159): CMD: DRIVER LINKSPEED 
D/wpa_supplicant(19159): wpa_driver_tista_driver_cmd LINKSPEED 
D/wpa_supplicant(19159): Link Speed command 
D/wpa_supplicant(19159): buf LinkSpeed 54 
E/BluetoothEventLoop.cpp(1304): event_filter: Received signal org.bluez.Adapter:PropertyChanged from /org/bluez/23550/hci0 
E/BluetoothService.cpp(1304): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) 
V/BluetoothEventRedirector(1862): Received android.bluetooth.adapter.action.DISCOVERY_FINISHED 
D/sl4a.ConsoleActivity$1:145(27913): Connected to TerminalManager and found bridges.size=1 
I/HK/LatinKeyboardBaseView(1385): closing [email protected] 
D/sl4a.ConsoleActivity:761(27913): onResume called 
E/BluetoothEventLoop.cpp(1304): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/23550/hci0/dev_0C_DF_A4_78_99_50 
D/BluetoothService(1304): updateDeviceServiceChannelCache(0C:DF:A4:78:99:50) 
D/BluetoothService(1304): uuid(system): 00001105-0000-1000-8000-00805f9b34fb 3 
D/BluetoothService(1304): uuid(application): 457807c0-4897-11df-9879-0800200c9a66 13 
D/BluetoothService(1304): Making callback for 457807c0-4897-11df-9879-0800200c9a66 with result 13 
V/BluetoothEventRedirector(1862): Received android.bleutooth.device.action.UUID 
E/sl4a.JsonRpcServer:101(27913): Invocation error. 
E/sl4a.JsonRpcServer:101(27913): java.io.IOException: Connection refused 
E/sl4a.JsonRpcServer:101(27913): at android.bluetooth.BluetoothSocket.connectNative(Native Method) 
E/sl4a.JsonRpcServer:101(27913): at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:204) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.facade.BluetoothFacade.bluetoothConnect(BluetoothFacade.java:158) 
E/sl4a.JsonRpcServer:101(27913): at java.lang.reflect.Method.invokeNative(Native Method) 
E/sl4a.JsonRpcServer:101(27913): at java.lang.reflect.Method.invoke(Method.java:507) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.jsonrpc.RpcReceiverManager.invoke(RpcReceiverManager.java:87) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.facade.FacadeManager.invoke(FacadeManager.java:58) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.rpc.MethodDescriptor.invoke(MethodDescriptor.java:109) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.jsonrpc.JsonRpcServer.handleConnection(JsonRpcServer.java:99) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.SimpleServer$ConnectionThread.run(SimpleServer.java:91) 
V/sl4a.JsonRpcServer:117(27913): Sent: {"error":"java.io.IOException: Connection refused","id":7,"result":null} 
V/sl4a.JsonRpcServer:74(27913): Received: {"params": [], "id": 8, "method": "bluetoothReadLine"} 
E/sl4a.JsonRpcServer:101(27913): Invocation error. 
E/sl4a.JsonRpcServer:101(27913): java.io.IOException: Bluetooth not ready for this connID. 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.facade.BluetoothFacade.getConnection(BluetoothFacade.java:95) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.facade.BluetoothFacade.bluetoothReadLine(BluetoothFacade.java:231) 
E/sl4a.JsonRpcServer:101(27913): at java.lang.reflect.Method.invokeNative(Native Method) 
E/sl4a.JsonRpcServer:101(27913): at java.lang.reflect.Method.invoke(Method.java:507) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.jsonrpc.RpcReceiverManager.invoke(RpcReceiverManager.java:87) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.facade.FacadeManager.invoke(FacadeManager.java:58) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.rpc.MethodDescriptor.invoke(MethodDescriptor.java:109) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.jsonrpc.JsonRpcServer.handleConnection(JsonRpcServer.java:99) 
E/sl4a.JsonRpcServer:101(27913): at com.googlecode.android_scripting.SimpleServer$ConnectionThread.run(SimpleServer.java:91) 
V/sl4a.JsonRpcServer:117(27913): Sent: {"error":"java.io.IOException: Bluetooth not ready for this connID.","id":8,"result":null} 
V/sl4a.JsonRpcServer:74(27913): Received: {"params": ["Chat Received", null], "id": 9, "method": "dialogCreateAlert"} 
V/sl4a.JsonRpcServer:117(27913): Sent: {"error":null,"id":9,"result":null} 
V/sl4a.JsonRpcServer:74(27913): Received: {"params": ["Ok"], "id": 10, "method": "dialogSetPositiveButtonText"} 
V/sl4a.JsonRpcServer:117(27913): Sent: {"error":null,"id":10,"result":null} 
V/sl4a.JsonRpcServer:74(27913): Received: {"params": [], "id": 11, "method": "dialogShow"} 
I/ActivityManager(1304): Starting: Intent { flg=0x18000000 cmp=com.googlecode.android_scripting/.activity.FutureActivity (has extras) } from pid 27913 
D/sl4a.ConsoleActivity:746(27913): onPause called 

編輯13/09/2012 09:55:我想Bluetooth Chat App(BILL RAY)從市場和允許我的兩個電話聊天,我可以從任何一方進行連接:至少可以用Java解決問題。仍然bluetooth_chat.py示例不起作用。

編輯10:45:我從BeanShell的嘗試仍然SL4A與他同樣的問題,工作在我的S2和失敗對我的京融:

代碼:

source("/sdcard/com.googlecode.bshforandroid/extras/bsh/android.bsh"); 
droid = Android(); 
droid.call("makeToast", "Hello, Android!"); 
address = "00:12:F3:11:DC:E5"; 
uuid = "00001101-0000-1000-8000-00805F9B34FB"; 
droid.call("toggleBluetoothState","True"); 
droid.call("bluetoothConnect",uuid, address); 
droid.call("makeToast", "Bye, Android!"); 

logcat的是類似的:

I/ActivityManager(1305): Starting: Intent { act=android.bluetooth.adapter.action.REQUEST_ENABLE cmp=com.android.settings/.bluetooth.RequestPermissionActivity } from pid 7364 
D/dalvikvm(7364): GC_CONCURRENT freed 1075K, 49% free 3716K/7239K, external 4198K/5242K, paused 2ms+14ms 
V/sl4a.JsonRpcServer:117(7364): Sent: {"error":null,"id":0,"result":true} 
I/HK/LatinKeyboardBaseView(1385): closing [email protected] 
V/sl4a.JsonRpcServer:74(7364): Received: {"id":0,"method":"bluetoothConnect","params":["00001101-0000-1000-8000-00805F9B34FB","00:12:F3:11:DC:E5"]} 
E/BluetoothService.cpp(1305): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) 
I/ActivityManager(1305): Displayed com.googlecode.android_scripting/.activity.FutureActivity: +223ms 
I/HK/LatinKeyboardBaseView(1385): closing [email protected] 
D/sl4a.ConsoleActivity:761(7364): onResume called 
E/BluetoothEventLoop.cpp(1305): event_filter: Received signal org.bluez.Device:PropertyChanged from /org/bluez/1804/hci0/dev_00_12_F3_11_DC_E5 
I/ActivityManager(1305): Start proc com.google.android.carhome for broadcast com.google.android.carhome/.receiver.BluetoothLaunchReceiver: pid=7876 uid=10020 gids={3002, 3001} 
I/HK/LatinKeyboardBaseView(1385): closing [email protected] 
I/ActivityThread(7876): Pub com.google.android.carhome.config: com.google.android.carhome.CarHomeProvider 
D/BluetoothService(1305): updateDeviceServiceChannelCache(00:12:F3:11:DC:E5) 
D/BluetoothService(1305): uuid(application): 00001101-0000-1000-8000-00805f9b34fb 1 
D/BluetoothService(1305): Making callback for 00001101-0000-1000-8000-00805f9b34fb with result 1 
D/dalvikvm(7364): GC_EXTERNAL_ALLOC freed 50K, 49% free 3698K/7239K, external 4198K/5242K, paused 131ms 
V/BluetoothEventRedirector(7681): Received android.bleutooth.device.action.UUID 
I/BluetoothEventLoop.cpp(1305): agent_event_filter: Received method org.bluez.Agent:OutOfBandAvailable 
I/sl4a.TerminalBridge:540(7364): parentChanged() now width=133, height=34 
E/sl4a.JsonRpcServer:101(7364): Invocation error. 
E/sl4a.JsonRpcServer:101(7364): java.io.IOException: Connection refused 
E/sl4a.JsonRpcServer:101(7364): at android.bluetooth.BluetoothSocket.connectNative(Native Method) 
E/sl4a.JsonRpcServer:101(7364): at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:204) 
E/sl4a.JsonRpcServer:101(7364): at com.googlecode.android_scripting.facade.BluetoothFacade.bluetoothConnect(BluetoothFacade.java:158) 
E/sl4a.JsonRpcServer:101(7364): at java.lang.reflect.Method.invokeNative(Native Method) 
E/sl4a.JsonRpcServer:101(7364): at java.lang.reflect.Method.invoke(Method.java:507) 
E/sl4a.JsonRpcServer:101(7364): at com.googlecode.android_scripting.jsonrpc.RpcReceiverManager.invoke(RpcReceiverManager.java:87) 
E/sl4a.JsonRpcServer:101(7364): at com.googlecode.android_scripting.facade.FacadeManager.invoke(FacadeManager.java:58) 
E/sl4a.JsonRpcServer:101(7364): at com.googlecode.android_scripting.rpc.MethodDescriptor.invoke(MethodDescriptor.java:109) 
E/sl4a.JsonRpcServer:101(7364): at com.googlecode.android_scripting.jsonrpc.JsonRpcServer.handleConnection(JsonRpcServer.java:99) 
E/sl4a.JsonRpcServer:101(7364): at com.googlecode.android_scripting.SimpleServer$ConnectionThread.run(SimpleServer.java:91) 
V/sl4a.JsonRpcServer:117(7364): Sent: {"error":"java.io.IOException: Connection refused","id":0,"result":null} 
+0

錯誤的WinMate運行Android ICS的機會有多大? 4.0.x我想。 – Radu

+0

@Cyrill Holweck任何更新? – Radu

回答

1

Python4Android project有一個爲ARM編譯的PyBluez的副本,在這裏可能很有用。

它不是純粹的Python,但安裝很簡單;您只需將egg文件的副本下載到您的機器人,打開Python4Android應用程序,點擊導入模塊並選擇egg文件。

我以前用過這個東西沒有問題。

  • PyBluez項目[visit]
  • Python4Android項目[visit]
  • PY4A預編譯的軟件包列表,包括PyBluez [visit]
  • PyBluez-0.19-py2.6-Linux的armv.egg [download ]
相關問題