python写安卓app控制蓝牙_java – 初始化蓝牙连接android(客户端)到pc上的python(服务器)...

我正在尝试从我的

Android手机(三星Galaxy S2)发送一个“helloWorld”(只是一个字符串)到我运行linux的电脑上的一个python脚本.但我不能让它工作.以下是Android应用程序(客户端)和python脚本(服务器)的代码.蓝牙在pc和手机上工作正常(例如,我可以通过BT从手机发送照片).当我调用btSocket.connect();在下面的java代码中,它不会连接.我必须指定要连接的端口,因为我已经为serverSocket指定了一个端口?

任何帮助将非常感激.

public class BlueTooth_testActivity extends Activity {

TextView header;

Button discoverDevicesBtn;

Button sendMsgBtn;

Button closeBtn;

EditText sendTxt;

BluetoothAdapter btAdapter;

BluetoothSocket btSocket;

private static String btAdress = "00:10:60:D1:95:CD";

private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");

private OutputStream out;

public BluetoothDevice device;

private Boolean CONNECTED = false;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

//init layout parameters

header = (TextView) findViewById(R.id.text1);

discoverDevicesBtn = (Button) findViewById(R.id.discBtn);

sendMsgBtn = (Button) findViewById(R.id.sendButton);

closeBtn = (Button) findViewById(R.id.closeButton);

sendTxt = (EditText) findViewById(R.id.editText1);

discoverDevicesBtn.setOnClickListener(discoverDeviceListener);

sendMsgBtn.setOnClickListener(sendMsgListener);

closeBtn.setOnClickListener(closeBtnListener);

//init bluetooth

btAdapter = BluetoothAdapter.getDefaultAdapter();

if (btAdapter.isEnabled()) {

Toast.makeText(this, "Bluetooth state:" + btAdapter.getState() + " Ok!", Toast.LENGTH_LONG).show();

} else {

Toast.makeText(this, "Bluetooth state:" + btAdapter.getState() + " Not ok!", Toast.LENGTH_LONG).show();

}

}

private Button.OnClickListener discoverDeviceListener = new Button.OnClickListener() {@Override

public void onClick(View v) {

if (!CONNECTED) {

device = btAdapter.getRemoteDevice(btAdress);

header.append("\nRemote device: " + device.getName());

try {

btSocket = device.createRfcommSocketToServiceRecord(MY_UUID);

} catch (Exception e) {

}

header.append("\n createRfcommsockettoservice! ");

btAdapter.cancelDiscovery();

try {

btSocket.connect();

CONNECTED = true;

header.append("\n btSocket Created!");

} catch (IOException e) {

Toast.makeText(getApplicationContext(), "Could not connect to socket", Toast.LENGTH_LONG);

try {

btSocket.close();

} catch (Exception b) {}

}

}

}

};

private Button.OnClickListener sendMsgListener = new Button.OnClickListener() {@Override

public void onClick(View v) {

if (CONNECTED) {

try {

out = btSocket.getOutputStream();

String msg = sendTxt.getText().toString();

byte[] msgBffr = msg.getBytes();

out.write(msgBffr);

Toast.makeText(getApplicationContext(), "Message sent", Toast.LENGTH_LONG).show();

} catch (Exception a) {

Toast.makeText(getApplicationContext(), "Could not send msg", Toast.LENGTH_LONG).show();

}

} else {

Toast.makeText(getApplicationContext(), "cant send msg, not connected", Toast.LENGTH_LONG).show();

}

}

};

}

(我讨厌包括其他的java代码,因为问题在连接设置的某个地方)

import bluetooth

name="bt_server"

target_name="siggen"

uuid="00001101-0000-1000-8000-00805F9B34FB"

def runServer():

serverSocket=bluetooth.BluetoothSocket(bluetooth.RFCOMM )

port=bluetooth.PORT_ANY

serverSocket.bind(("",port))

print "Listening for connections on port: ", port

serverSocket.listen(1)

port=serverSocket.getsockname()[1]

inputSocket, address=serverSocket.accept()

print "Got connection with" , address

data=inputSocket.recv("1024")

print "received [%s] \n " % data

inputSocket.close()

serverSocket.close()

runServer()

.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值