Add dumpsys support for bluetooth
Bug: 18159457
Change-Id: I8d3f7084a7b089c111fd622ff526630bfdfa7300
diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl
index 992f601..cd4535a 100644
--- a/core/java/android/bluetooth/IBluetooth.aidl
+++ b/core/java/android/bluetooth/IBluetooth.aidl
@@ -98,4 +98,7 @@
boolean isActivityAndEnergyReportingSupported();
void getActivityEnergyInfoFromController();
BluetoothActivityEnergyInfo reportActivityInfo();
+
+ // for dumpsys support
+ String dump();
}
diff --git a/core/java/com/android/internal/util/StateMachine.java b/core/java/com/android/internal/util/StateMachine.java
index d26f79e..7ad3470 100644
--- a/core/java/com/android/internal/util/StateMachine.java
+++ b/core/java/com/android/internal/util/StateMachine.java
@@ -1940,13 +1940,19 @@
* @param args
*/
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- pw.println(getName() + ":");
- pw.println(" total records=" + getLogRecCount());
+ pw.println(this.toString());
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append(getName() + ":\n");
+ sb.append(" total records=" + getLogRecCount() + "\n");
for (int i = 0; i < getLogRecSize(); i++) {
- pw.printf(" rec[%d]: %s\n", i, getLogRec(i).toString());
- pw.flush();
+ sb.append(" rec[" + i + "]: " + getLogRec(i).toString() + "\n");
}
- pw.println("curState=" + getCurrentState().getName());
+ sb.append("curState=" + getCurrentState().getName());
+ return sb.toString();
}
/**
diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java
index 636228b..ebdd386 100644
--- a/services/core/java/com/android/server/BluetoothManagerService.java
+++ b/services/core/java/com/android/server/BluetoothManagerService.java
@@ -44,6 +44,10 @@
import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+
class BluetoothManagerService extends IBluetoothManager.Stub {
private static final String TAG = "BluetoothManagerService";
private static final boolean DBG = true;
@@ -1282,4 +1286,21 @@
// todo: notify user to power down and power up phone to make bluetooth work.
}
}
+
+ @Override
+ public void dump(FileDescriptor fd, PrintWriter writer, String[] args) {
+ writer.println("enabled: " + mEnable);
+ writer.println("state: " + mState);
+ writer.println("address: " + mAddress);
+ writer.println("name: " + mName);
+ if (mBluetooth == null) {
+ writer.println("Bluetooth Service not connected");
+ } else {
+ try {
+ writer.println(mBluetooth.dump());
+ } catch (RemoteException re) {
+ writer.println("RemoteException while calling Bluetooth Service");
+ }
+ }
+ }
}