दर्ज किए बिना ब्लूटूथ डिवाइस को जोड़ता है ब्लूटूथ डिवाइस जो मैं कनेक्ट करने का प्रयास कर रहा हूं वह हमेशा एक ही पिनकोड होता है। यह पिन प्रोग्रामेटिक रूप से पिन सेट करके डिवाइस को जोड़ना संभव बनाना चाहिए।प्रोग्रामिंग रूप से उपयोगकर्ता को पिन
खोज करने के लिए यह कैसे किया जा सकता है की कोशिश कर के बाद, मैं नीचे दिए गए कोड के साथ समाप्त हो गया:
BluetoothDevice device = getDevice();
//To avoid the popup notification:
device.getClass().getMethod("setPairingConfirmation", boolean.class).invoke(device, true);
device.getClass().getMethod("cancelPairingUserInput", boolean.class).invoke(device, true);
byte[] pin = ByteBuffer.allocate(4).putInt(1234).array();
//int pinn = 1234;
//Entering pin programmatically:
Method ms = device.getClass().getMethod("setPin", byte[].class);
//Method ms = device.getClass().getMethod("setPasskey", int.class);
ms.invoke(device, pin);
//Bonding the device:
Method mm = device.getClass().getMethod("createBond", (Class[]) null);
mm.invoke(device, (Object[]) null);
cancelPairingUserInput
मुझे एक NoSuchMethodException
है, जो अजीब है क्योंकि विधि BluetoothDevice
कक्षा में मौजूद है देता है।
Setpin
या SetPasskey
जैसा कुछ भी नहीं दिखता है। डिवाइस सिर्फ जोड़ी नहीं है। मैन्युअल रूप से पिन दर्ज करने के बाद यह केवल जोड़े।
तो कोड है कि काम करता है की केवल लाइन है:
//Bonding the device:
Method mm = device.getClass().getMethod("createBond", (Class[]) null);
mm.invoke(device, (Object[]) null);
Logcat उत्पादन: गलत
09-27 12:34:46.408: ERROR/App(11671): cancelPairingUserInput [boolean]
java.lang.NoSuchMethodException: cancelPairingUserInput [boolean]
at java.lang.Class.getConstructorOrMethod(Class.java:460)
at java.lang.Class.getMethod(Class.java:915)
at test.app.bluetooth.model.BluetoothDiscoveryAndPairing.pair(BluetoothDiscoveryAndPairing.java:97)
at test.app.bluetooth.model.BluetoothDiscoveryAndPairing.access$000(BluetoothDiscoveryAndPairing.java:25)
at test.app.bluetooth.model.BluetoothDiscoveryAndPairing$1.onReceive(BluetoothDiscoveryAndPairing.java:79)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:756)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4921)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
at dalvik.system.NativeStart.main(Native Method)
तो मैं क्या कर रहा हूँ?
@DuncanJones मैं अपने startpost को स्टैकट्रेस गयी। – user1816451