我正在編寫一個應用程序,該應用程序依賴於可通過藍牙發現的Android設備(用於當前測試目的HTC Evo 4G和幾個原始Motorola Droids),時間爲300秒。擴展Android藍牙可發現性
我針對的是Android 2.0.1版,因此根據API我應該能夠提示用戶啓用最多300秒的發現。在我的機器人和我的Evo上,提示窗口列出了300秒,但它們都在120秒後結束。
我用來提示用戶的代碼是在這裏:
private void makeDiscoverable() {
Intent discoverableIntent = new Intent(
BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
discoverableIntent.putExtra(
BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
startActivity(discoverableIntent);
}
我確信,這個代碼運行。不過,後來我有,當我發現性狀態改變(在這種情況下結束,我假設)一個處理程序,內容是這樣的:
if (isDiscoverableChange(action)) {
int discoverState = intent.getIntExtra(
BluetoothAdapter.EXTRA_SCAN_MODE, Short.MIN_VALUE);
if (isDiscoverableState(discoverState)) {
setItOrder();
setUpScanAndDisplay();
} else {
discoverScheduler.cancel();
itScheduler.cancel();
}
}
private boolean isDiscoverableChange(String action) {
return BluetoothAdapter.ACTION_SCAN_MODE_CHANGED.equals(action);
}
private boolean isDiscoverableState(int state) {
return state == BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE;
}
我試圖註釋掉,當可發現模式結束運行,以防萬一部分它過早地取消了一切,但可發現性確實在120秒後結束。
這是硬件問題,還是我在這裏做錯了什麼?
你確定你的目標是Android 2.0.1 - 我不認爲有這樣的事情。 – Tom
2.0.1版本這樣的東西,還是硬件限制最大發現時間的東西? 2.0.1是我在設置中看到的固件版本,應該是Eclaire,修訂版1或API Level 6 – user1438560