diff options
| -rw-r--r-- | core/java/android/bluetooth/IBluetooth.aidl | 3 | ||||
| -rw-r--r-- | core/java/com/android/internal/util/StateMachine.java | 16 | ||||
| -rw-r--r-- | services/core/java/com/android/server/BluetoothManagerService.java | 21 |
3 files changed, 35 insertions, 5 deletions
diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl index 992f601a20db..cd4535a57f92 100644 --- a/core/java/android/bluetooth/IBluetooth.aidl +++ b/core/java/android/bluetooth/IBluetooth.aidl @@ -98,4 +98,7 @@ interface IBluetooth 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 d26f79e1a094..7ad347020923 100644 --- a/core/java/com/android/internal/util/StateMachine.java +++ b/core/java/com/android/internal/util/StateMachine.java @@ -1940,13 +1940,19 @@ public class StateMachine { * @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 636228baaee9..ebdd386d1e62 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.SystemClock; 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 @@ class BluetoothManagerService extends IBluetoothManager.Stub { // 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"); + } + } + } } |