2017-10-11 33 views
0

J'ai utilisé l'exemple BluetoothLeGatt d'Android et maintenant je veux charger un fichier xml en fonction de l'UUID de l'appareil avec lequel je me connecte.Compare UUID avec GattService List

J'ai essayé de comparer les UUID avec le code suivant.

mBluetoothLeService.getSupportedGattServices().equals("0003CBBB-0000-1000-8000-00805F9B0131") 

Avec la fonction:

public List<BluetoothGattService> getSupportedGattServices() { 
    if (mBluetoothGatt == null) return null; 

    return mBluetoothGatt.getServices(); 
} 

Qu'est-ce que je fais mal?

Voici le code d'erreur:

FATAL EXCEPTION: main 
                       Process: com.example.android.bluetoothlegatt, PID: 1314 
                       java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.bluetoothlegatt/com.example.android.bluetoothlegatt.DeviceControlActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.example.android.bluetoothlegatt.BluetoothLeService.getSupportedGattServices()' on a null object reference 
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2924) 
                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985) 
                        at android.app.ActivityThread.-wrap14(ActivityThread.java) 
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635) 
                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                        at android.os.Looper.loop(Looper.java:154) 
                        at android.app.ActivityThread.main(ActivityThread.java:6692) 
                        at java.lang.reflect.Method.invoke(Native Method) 
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) 
                       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List com.example.android.bluetoothlegatt.BluetoothLeService.getSupportedGattServices()' on a null object reference 
                        at com.example.android.bluetoothlegatt.DeviceControlActivity.onCreate(DeviceControlActivity.java:483) 
                        at android.app.Activity.performCreate(Activity.java:6912) 
                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) 
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2877) 
                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985)  
                        at android.app.ActivityThread.-wrap14(ActivityThread.java)  
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635)  
                        at android.os.Handler.dispatchMessage(Handler.java:102)  
                        at android.os.Looper.loop(Looper.java:154)  
                        at android.app.ActivityThread.main(ActivityThread.java:6692)  
                        at java.lang.reflect.Method.invoke(Native Method)  
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)  
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358 

Répondre

0

Selon Je comprends votre question:

List<BluetoothGattService> services = mBluetoothLeService.getSupportedGattServices(); 
for (int i = 0; i < services.size(); i++) { 
     BluetoothGattService gattService = services.get(i); 
if(gattService.getUuid().toString().equalsIgnoreCase("0003CBBB-0000-1000-8000-00805F9B0131")) 
     Log.e("SERVICES : ", "" + gattService.getUuid()); 
     } 
    }