OSDN Git Service

Suppress output for Protobuf data if Bluetooth is disabled
authorPavlin Radoslavov <pavlin@google.com>
Tue, 23 Feb 2016 19:54:37 +0000 (11:54 -0800)
committerPavlin Radoslavov <pavlin@google.com>
Tue, 23 Feb 2016 22:34:58 +0000 (14:34 -0800)
If Bluetooth is disabled or there is some other error,
don't print anything when extracting the Metrics-related data
in Protobuf format.

Bug: 27315491
Change-Id: Ic1ec5334fbf0b524909400f080e2eac3ec34edf4

services/core/java/com/android/server/BluetoothManagerService.java

index a2b1aa8..1e91a2c 100644 (file)
@@ -1831,14 +1831,21 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
     @Override
     public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
         mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP, TAG);
+        String errorMsg = null;
         if (mBluetoothBinder == null) {
-            writer.println("Bluetooth Service not connected");
+            errorMsg = "Bluetooth Service not connected";
         } else {
             try {
                 mBluetoothBinder.dump(fd, args);
             } catch (RemoteException re) {
-                writer.println("RemoteException while calling Bluetooth Service");
+                errorMsg = "RemoteException while calling Bluetooth Service";
             }
         }
+        if (errorMsg != null) {
+            // Silently return if we are extracting metrics in Protobuf format
+            if ((args.length > 0) && args[0].startsWith("--proto"))
+                return;
+            writer.println(errorMsg);
+        }
     }
 }