我有一个可自动打开设备蓝牙并连接至已配对设备的android应用。设备发送不断更新的数据。如果用户按下启用设备按钮,该按钮用于初始化设备并开始操作,则在建立连接之前,将重置所有先前的数据。
这是我从一家外包公司得到的一个Android项目,因此我最初并没有编写代码。我有
private void initialize() {
// initializing and launching the Equipment layer api
try {
Utility.writeLogs(this, getString(R.string.info), TAG,
"Initializing EState Manager");
EStateManager.getInstance().launch(getResources());
getInfo();
requestConfiguration();
findViewById(R.id.btn_enable).setVisibility(View.VISIBLE);
handleConnectionDialog();
} catch (Exception e) {
e.printStackTrace();
Utility.writeLogs(this, getString(R.string.error), TAG,
"EStateManger initialization failed");
Utility.writeLogs(this, getString(R.string.error), TAG, e);
}
}
private void handleConnectionDialog() {
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(() -> {
// do stuff
if (!EStateManager.getInstance().isDataReceived()) {
if (!new PrefUtil(this).isConnectionDialogEnabled()) {
runOnUiThread(() ->
onShowPopup(Utility.POPUP_MAP.get(14)));
}
} else {
if (!buttonPressed) {
findViewById(R.id.btn_enable).setVisibility(View.VISIBLE);
}
EStateManager.getInstance().setDataReceived(false);
}
}, 5, 5, TimeUnit.SECONDS);
}
我想在成功连接蓝牙之前禁用该按钮,以确保保存的参数不会更改。
配置广播接收器以收听ACTION_STATE_CHANGED
然后检查多余的EXTRA_CONNECTION_STATE
并启用按钮,如果它是STATE_CONNECTED
同样也在ACTION_STATE_CHANGED
接收器中,检查STATE_DISCONNECTED
,并禁用按钮。