मैं एक एप्लिकेशन लिख रहा हूं जो एंड्रॉइड डिवाइस (मेरे वर्तमान परीक्षण उद्देश्यों के लिए एक एचटीसी ईवो 4 जी और कई मूल मोटोरोला ड्रॉइड्स) पर निर्भर है, जो ब्लूटूथ के माध्यम से 300 सेकंड के लिए खोज योग्य है।
मैं Android संस्करण 2.0 को लक्षित कर रहा हूं।1, इसलिए एपीआई के अनुसार मुझे अधिकतम 300 सेकंड के लिए खोज को सक्षम करने के लिए उपयोगकर्ता को संकेत देने में सक्षम होना चाहिए। मेरे Droids और मेरे 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 सेकंड के बाद समाप्त हो जाती है।
क्या यह एक हार्डवेयर समस्या है, या मैं यहां कुछ गलत कर रहा हूं?
उत्तर:
उत्तर № 1 के लिए 1यह एक बग प्रतीत होता है:
समस्या 15486: ब्लूटूथ एडेप्टर। DISRAVERABLE का पालन नहीं किया गया http://code.google.com/p/android/issues/detail?id=15486
समस्या 13361: BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION आशय अतिरिक्त 120 सेकंड खोज अंतराल का विस्तार नहीं करता है http://code.google.com/p/android/issues/detail?id=13361
पहले 22 दिसंबर, 2010 को रिपोर्ट की गई, फिर भी "नई" स्थिति के रूप में सूचीबद्ध है, इसलिए मुझे उम्मीद है कि यह ठीक नहीं होगा।
उत्तर № 2 के लिए 1
ब्लूटूथ है DiscoverableTimeout
Android मध्यांतर के अलावा मूल्य।
आमतौर पर, DiscoverableTimeout
फ़ाइल में सेट है /system/etc/bluetooth/main.conf
120 से।
आपको लिखना चाहिए
DiscoverableTimeout = 0
में /system/etc/bluetooth/main.conf
ब्लूटूथ टाइमआउट को निष्क्रिय करने के लिए। यह आपको 120 सेकंड से अधिक एंड्रॉइड टाइमआउट का विस्तार करने की अनुमति देगा।