All Downloads are FREE. Search and download functionalities are using the official Maven repository.

src.android.debug.AdbManager Maven / Gradle / Ivy

Go to download

A library jar that provides APIs for Applications written for the Google Android Platform.

There is a newer version: 15-robolectric-12650502
Show newest version
/*
 * 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();
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy