/* * Copyright (C) 2018 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.debug; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; import android.content.Context; import android.os.RemoteException; /** * This class allows the control of ADB-related functions. * @hide */ @SystemApi @SystemService(Context.ADB_SERVICE) public class AdbManager { private static final String TAG = "AdbManager"; /** * Action indicating the state change of wireless debugging. Can be either * STATUS_CONNECTED * STATUS_DISCONNECTED * * @hide */ public static final String WIRELESS_DEBUG_STATE_CHANGED_ACTION = "com.android.server.adb.WIRELESS_DEBUG_STATUS"; /** * Contains the list of paired devices. * * @hide */ public static final String WIRELESS_DEBUG_PAIRED_DEVICES_ACTION = "com.android.server.adb.WIRELESS_DEBUG_PAIRED_DEVICES"; /** * Action indicating the status of a pairing. Can be either * WIRELESS_STATUS_FAIL * WIRELESS_STATUS_SUCCESS * WIRELESS_STATUS_CANCELLED * WIRELESS_STATUS_PAIRING_CODE * WIRELESS_STATUS_CONNECTED * * @hide */ public static final String WIRELESS_DEBUG_PAIRING_RESULT_ACTION = "com.android.server.adb.WIRELESS_DEBUG_PAIRING_RESULT"; /** * Extra containing the PairDevice map of paired/pairing devices. * * @hide */ public static final String WIRELESS_DEVICES_EXTRA = "devices_map"; /** * The status of the pairing/unpairing. * * @hide */ public static final String WIRELESS_STATUS_EXTRA = "status"; /** * The PairDevice. * * @hide */ public static final String WIRELESS_PAIR_DEVICE_EXTRA = "pair_device"; /** * The six-digit pairing code. * * @hide */ public static final String WIRELESS_PAIRING_CODE_EXTRA = "pairing_code"; /** * The adb connection/pairing port that was opened. * * @hide */ public static final String WIRELESS_DEBUG_PORT_EXTRA = "adb_port"; /** * Status indicating the pairing/unpairing failed. * * @hide */ public static final int WIRELESS_STATUS_FAIL = 0; /** * Status indicating the pairing/unpairing succeeded. * * @hide */ public static final int WIRELESS_STATUS_SUCCESS = 1; /** * Status indicating the pairing/unpairing was cancelled. * * @hide */ public static final int WIRELESS_STATUS_CANCELLED = 2; /** * Status indicating the pairing code for pairing. * * @hide */ public static final int WIRELESS_STATUS_PAIRING_CODE = 3; /** * Status indicating wireless debugging is connected. * * @hide */ public static final int WIRELESS_STATUS_CONNECTED = 4; /** * Status indicating wireless debugging is disconnected. * * @hide */ public static final int WIRELESS_STATUS_DISCONNECTED = 5; private final Context mContext; private final IAdbManager mService; /** * {@hide} */ public AdbManager(Context context, IAdbManager service) { mContext = context; mService = service; } /** * @return true if the device supports secure ADB over Wi-Fi. * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.MANAGE_DEBUGGING) public boolean isAdbWifiSupported() { try { return mService.isAdbWifiSupported(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } /** * @return true if the device supports secure ADB over Wi-Fi and device pairing by * QR code. * @hide */ @SystemApi @RequiresPermission(android.Manifest.permission.MANAGE_DEBUGGING) public boolean isAdbWifiQrSupported() { try { return mService.isAdbWifiQrSupported(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } }