कुछ शोध के बाद मैंने निष्कर्ष निकाला कि उपयोगकर्ता इंटरैक्शन के बिना खोजने योग्य टाइमआउट सेट करना रूट रूट के साथ ही संभव है (जैसा कि पहले से ही पिछले उत्तर में सुझाया गया है)। हालांकि किसी के लिए जो की जरूरत है कि यहाँ आवश्यक समाधान है:
private void ensureBluetoothDiscoverability() {
try {
IBluetooth mBtService = getIBluetooth();
Log.d("TESTE", "Ensuring bluetoot is discoverable");
if(mBtService.getScanMode() != BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
Log.e("TESTE", "Device was not in discoverable mode");
try {
mBtService.setDiscoverableTimeout(100);
// mBtService.setScanMode(BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE, 1000);
} catch(Exception e) {
Log.e("TESTE", "Error setting bt discoverable",e);
}
Log.i("TESTE", "Device must be discoverable");
} else {
Log.e("TESTE", "Device already discoverable");
}
} catch(Exception e) {
Log.e("TESTE", "Error ensuring BT discoverability", e);
}
}
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
और फिर एक नए पैकेज android.bluetooth बनाने के लिए, IBluetooth.aidl और IBluetoothCallback.aidl अंदर दो फ़ाइलों जगह है और डाल कोड के अंदर here दिखाया गया है।
यह उन मानकों तक पहुंचने की अनुमति देगा जो मानक API पर उपलब्ध नहीं हैं, लेकिन उनमें से कुछ के लिए आपको "सुरक्षित सेटिंग्स लिखने" की अनुमति की आवश्यकता होगी (ऊपर टिप्पणी पंक्ति है जहां आपको अनुमतियों की कमी के लिए अपवाद मिलेगा प्रक्रिया/उपयोगकर्ता का)।
हाय, मैंने इस कोड के साथ प्रयास किया। लेकिन मुझे सफलता नहीं मिल रही है। मैंने एलजी 2.3.4 में परीक्षण किया। क्या आप मुझे बता सकते हैं कि मैं गलत कहां कर रहा हूं? –
आपको IBluetooth क्लास @Tiago कहां मिलता है? @AnasAzeem? – gumuruh