每当连接蓝牙设备时,我都会使用我的广播接收器设置共享首选项(BT_Device_connected)。
现在,当您插入手机时,我正在编写的应用程序会自动打开蓝牙(是的,我知道不建议这样做。重点!;)。
我要做的是在手机插入后等待 2 分钟,然后检查在这两分钟内手机是否已连接到蓝牙设备(如果 BT_device_connected 为真,它有,如果为假,它没有't)。
所以,我正在尝试从一个服务中启动一个计时器/处理程序,然后等待 2 分钟,然后启动一个新服务,或者一种检查设备是否已连接的方法。
并且...我必须在后台执行所有这些操作,因为这些都不会真正影响 ui。
我拥有但不起作用的光荣代码如下:
public void onDeviceConnectTimer(){
TimerTask wait;
final Handler handler = new Handler();
Timer t = new Timer();
wait = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
Intent serviceIntent = new Intent(CheckIfDeviceConnectService.class.getName());
getApplicationContext().startService(serviceIntent);
Log.d("TIMER", "Timer set off");
}
});
}};
t.schedule(wait, initializeDate());
}
我做错了什么,有没有更好的方法来做到这一点?