2012-08-02 3 views
3

Ищете некоторые указатели, чтобы начать меня.Использование SL4A (Python) и bluetooth

В левой руке у меня SGS2 работает ICS. У меня есть SL4A и работает и установил Python 2.6.2

В правой руке у меня есть общий китайский RFID-считыватель. Он работает, он читает теги (у него есть дисплей), и он сопряжен с телефоном.

Я хочу, чтобы они играли красиво - я хочу, чтобы скрипт что-то, что будет следить за устройством и захватить коды по мере их передачи.

Я не эксперт по Python, но я использовал его в течение некоторого времени для создания простых операций ввода-вывода на веб-серверах, чтобы я мог найти свой путь.

Необычно, однако, у меня возникают настоящие проблемы с этим: я не могу найти «начало работы с ресурсами Bluetooth и SL4A», чтобы преодолеть этот первый шаг по созданию постоянного соединения и мониторинга.

Любые советы?

ответ

7

кажется, что вам нужен фасад bluetooth. Вот некоторые команды, имеющие отношение к Bluetooth, которые могут быть полезны для вас:

bluetoothAccept 
bluetoothActiveConnections 
bluetoothConnect 
bluetoothDiscoveryCancel 
bluetoothDiscoveryStart 
bluetoothGetConnectedDeviceName 
bluetoothGetLocalAddress 
bluetoothGetLocalName 
bluetoothGetRemoteDeviceName 
bluetoothGetScanMode 
bluetoothIsDiscovering 
bluetoothMakeDiscoverable 
bluetoothRead 
bluetoothReadBinary 
bluetoothReadLine 
bluetoothReadReady 
bluetoothSetLocalName 
bluetoothStop 
bluetoothWrite 
bluetoothWriteBinary 
checkBluetoothState 
toggleBluetoothState 


Для вызова любого из этих команд вы могли бы сделать что-то вроде

import android 
droid = android.Android() 
#call your commands with droid.bluetoothcommand 
droid.bluetoothDiscoveryStart() 
#or 
droid.toggleBluetoothState(True) 


Вот пример некоторых блютуз функции, он включен в SL4A, но я добавил комментарии для ясности:

import android #for bluetooth functions 
import time #for waiting 

#get everything setup 
droid = android.Android() 

#turn on bluetooth 
droid.toggleBluetoothState(True) 

#ask user 
droid.dialogCreateAlert('Be a server?') 
droid.dialogSetPositiveButtonText('Yes') 
droid.dialogSetNegativeButtonText('No') 
droid.dialogShow() 

#get user response to question 
result = droid.dialogGetResponse() 

#if the result is 'Yes' ('positive') then is_server is set to True 
is_server = result.result['which'] == 'positive' 

if is_server: 
    #so if is_server is true make the device discoverable and accept the next connection 
    droid.bluetoothMakeDiscoverable() 
    droid.bluetoothAccept() 
else: 
    #attempts to connect to a device over bluetooth, the logic being that if the phone 
    #is not receiving a connection then the user is attempting to connect to something 
    droid.bluetoothConnect() 


if is_server: 
    result = droid.getInput('Chat', 'Enter a message').result #Gets a message to send 
    #via bluetooth 
    if result is None: 
    droid.exit() #exit if nothing is in the message 
    droid.bluetoothWrite(result + '\n') #otherwise write the message 

while True: #receives a message 
    message = droid.bluetoothReadLine().result 
    droid.dialogCreateAlert('Chat Received', message) 
    droid.dialogSetPositiveButtonText('Ok') 
    droid.dialogShow() 
    droid.dialogGetResponse() 
    result = droid.getInput('Chat', 'Enter a message').result 
    if result is None: 
    break 
    droid.bluetoothWrite(result + '\n') 

droid.exit() 


Наконец, для получения полного списка команд Bluetooth, зайдите в http://code.google.com/p/android-scripting/wiki/ApiReference и прокрутите вниз до фасада bluetooth. Удачи!

+0

@Mathew, поддерживает ли SL4A BT api сканирование других устройств BT? Я не нашел этот API, есть ли способ включить этот API и построить? Спасибо, V – vik86

+0

К сожалению, я так не думаю, я вряд ли эксперт, хотя дайте мне знать, если вы увидите что-нибудь! –

Смежные вопросы