Bluetooth native dumpsys logging support (3/5)
Bug: 18508263
Change-Id: I88f9c90dab8b0c825010c8617709449a3dd704b2
diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java
index 32b91d2..f5d27f9 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.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;
@@ -52,6 +53,7 @@
import android.util.Log;
import java.io.FileDescriptor;
+import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
@@ -1737,17 +1739,32 @@
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");
+ }
+ }
}
}
}