该应用程序为用户提供了2个连接选项,USB和蓝牙.USB工作正常.我已经获得了蓝牙连接的示例代码,但是它们被设计为用作活动.我尝试在服务中执行此操作但失败了.
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
startService(new Intent(this, MyService.class));
<service android:enabled="true" android:name=".MyService" />
enter code here
Run Code Online (Sandbox Code Playgroud)
我需要与已配对的设备建立蓝牙通信,并且其MAC地址已知.所以我可以跳过发现和配对阶段.我试图连接的设备总是可以发现并等待连接.有没有办法从服务类中执行此操作并通过其他活动保持该连接?
我正在使用BluetoothChatService和DeviceListActivity
我有一个List很长的时间Strings:
test:test:test:test:test:test:test:ABC:test:test:test:test:test:test:
test:test:test:test:test:test:test:DEF:test:test:test:test:test:test:
test:test:test:test:test:test:test:GHI:test:test:test:test:test:test:
test:test:test:test:test:test:test:JKL:test:test:test:test:test:test:
test:test:test:test:test:test:test:MNO:test:test:test:test:test:test:
Run Code Online (Sandbox Code Playgroud)
假设所有测试彼此不同.我想根据大写字母所在的特定位置对这些字符串进行排序.
for (int i = 0; i < aList.size(); i++) {
System.out.println(list.get(i).toString().split(":")[7]);
}
Run Code Online (Sandbox Code Playgroud) 我有一个通过USB线连接到计算机的Android应用程序.我使用TCPServer类发送消息和监听.例如:
当我发送消息时:request:x
我收到响应:响应:x:55
我需要根据我得到的反应对我的活动进行更改.目前,我通过将activity和activity类对象传递给TCPServer的构造函数来暂时解决问题
public TCPServer(int portNum, Activity activity, IntroActivity ia) {
super();
port = portNum;
this.activity = activity;
this.ia = ia;
}
Run Code Online (Sandbox Code Playgroud)
然后我收到回复后:
void updateButton(final int color, final String txt) {
activity.runOnUiThread(new Runnable() {
public void run() {
ia.getConnectionButton().setBackgroundColor(color);
ia.getConnectionButton().setText(txt);
}
});
}
Run Code Online (Sandbox Code Playgroud)
如你所见,这根本没有效果.每当收到相关变量时,我都需要以某种方式通知活动.我使用Class for GlobalVariables并在listen()之后更改那些静态变量,但是我在通知活动时遇到了麻烦.