From 945c52d5d723134999cbad18d9c03572ef00620e Mon Sep 17 00:00:00 2001 From: Andre Eisenbach Date: Fri, 5 Dec 2014 09:31:30 -0800 Subject: Bluetooth native dumpsys logging support (3/5) Bug: 18508263 Change-Id: I88f9c90dab8b0c825010c8617709449a3dd704b2 --- core/java/android/bluetooth/IBluetooth.aidl | 4 ++-- .../android/server/BluetoothManagerService.java | 27 ++++++++++++++++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl index dabb1ceaea8f..c6f238ee6a64 100644 --- a/core/java/android/bluetooth/IBluetooth.aidl +++ b/core/java/android/bluetooth/IBluetooth.aidl @@ -99,6 +99,6 @@ interface IBluetooth void getActivityEnergyInfoFromController(); BluetoothActivityEnergyInfo reportActivityInfo(); - // for dumpsys support - String dump(); + // For dumpsys support + void dump(in ParcelFileDescriptor fd); } diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java index 32a6a2faad75..7aa8e113e037 100644 --- a/services/core/java/com/android/server/BluetoothManagerService.java +++ b/services/core/java/com/android/server/BluetoothManagerService.java @@ -41,6 +41,7 @@ import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; +import android.os.ParcelFileDescriptor; import android.os.Process; import android.os.RemoteCallbackList; import android.os.RemoteException; @@ -51,6 +52,7 @@ import android.provider.Settings; import android.util.Log; import java.io.FileDescriptor; +import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; @@ -1523,17 +1525,32 @@ class BluetoothManagerService extends IBluetoothManager.Stub { public void dump(FileDescriptor fd, PrintWriter writer, String[] args) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP, TAG); - writer.println("enabled: " + mEnable); - writer.println("state: " + mState); - writer.println("address: " + mAddress); - writer.println("name: " + mName); + writer.println("Bluetooth Status"); + writer.println(" enabled: " + mEnable); + writer.println(" state: " + mState); + writer.println(" address: " + mAddress); + writer.println(" name: " + mName + "\n"); + writer.flush(); + if (mBluetooth == null) { writer.println("Bluetooth Service not connected"); } else { + ParcelFileDescriptor pfd = null; try { - writer.println(mBluetooth.dump()); + pfd = ParcelFileDescriptor.dup(fd); + mBluetooth.dump(pfd); } catch (RemoteException re) { writer.println("RemoteException while calling Bluetooth Service"); + } catch (IOException ioe) { + writer.println("IOException attempting to dup() fd"); + } finally { + if (pfd != null) { + try { + pfd.close(); + } catch (IOException ioe) { + writer.println("IOException attempting to close() fd"); + } + } } } } -- cgit v1.2.3-59-g8ed1b