ddmlib adb 監聽裝置的上下

2021-08-07 06:04:41 字數 2695 閱讀 5870

最近在對android手機做自動化測試,需要管理手機裝置,需要監聽手機裝置的上線與下線,谷歌ddmlib包提供了解決方案。下面直接貼出**。

1、首先新建devicechangelistener,實現androiddebugbridge.idevicechangelistener介面,裡面有三個方法,分別是手機連線、離線、狀態改變的介面。

package com.nii.desktop.adb;

import com.android.ddmlib.androiddebugbridge;

import com.android.ddmlib.idevice;

/** * created by wzj on 2017/8/21.

*/public class devicechangelistener implements androiddebugbridge.idevicechangelistener

. * * this is sent from a non ui thread.

** @param device the new device.

*/@override

public void deviceconnected(idevice device)

/*** sent when the a device is connected to the .

* * this is sent from a non ui thread.

** @param device the new device.

*/@override

public void devicedisconnected(idevice device)

/*** sent when a device data changed, or when clients are started/terminated on the device.

* * this is sent from a non ui thread.

** @param device the device that was updated.

* @param changemask the mask describing what changed. it can contain any of the following

* values: , ,

*

*/@override

public void devicechanged(idevice device, int changemask)

else}}

2、對androiddebugbridge類做一次封裝,封裝初始化、註冊***、移除***、銷毀等方法

package com.nii.desktop.adb;

import com.android.ddmlib.androiddebugbridge;

import com.android.ddmlib.idevice;

/** * created by wzj on 2017/8/21.

*/ public void init(boolean clientsupport)

/*** 註冊裝置***

** @param listener ***

*/public void adddevicechangelistener(androiddebugbridge.idevicechangelistener listener)

/*** 移除***

** @param listener ***

*/public void removedevicechangelistener(androiddebugbridge.idevicechangelistener listener)

public void terminate()

public void disconnectbridge()

}

3、最後新建提供服務的devicemanager裝置管理類,該類是單例,通過該類可以獲取裝置列表,啟動服務等操作。

package com.nii.desktop.adb;

/** * 裝置管理類

* created by wzj on 2017/8/21.

*/public class devicemanager

/*** 獲取單例類

* @return devicemanager

*/public static devicemanager getinstance()

return instance;

}/**

* 啟動方法

*/public void start()

/*** 銷毀方法

*/public void destory()}}

4、如何使用呢?呼叫devicemanager的start方法就啟動了裝置管理,由於啟動有點慢,放到執行緒中啟動。

private void startdevicemanager()

}).start();

}

可以看到,***已經在正常的工作了,下面是日誌視窗的輸出。

android 藍芽裝置監聽廣播

藍芽許可權 1 監聽手機本身藍芽狀態的廣播 手機藍芽開啟關閉時傳送 action bluetoothadapter.action state changed if action.equals bluetoothadapter.action state changed 2 監聽藍芽裝置配對狀態的廣播 ...

android 藍芽裝置監聽廣播

藍芽許可權 1 監聽手機本身藍芽狀態的廣播 手機藍芽開啟關閉時傳送 action bluetoothadapter.action state changed if action.equals bluetoothadapter.action state changed 2 監聽藍芽裝置配對狀態的廣播 ...

Android裝置上的OTG

關於驅動 otg驅動在核心配置好 usb host 控制器的時候就已經支援 otg了。如果硬體上不支援otg 那麼就沒有辦法識別插入到 usb guest 口上的裝置。待測試 關於應用 otg對於應用程式來說是和普通的 usb host 口是一樣樣的。所以開發應用程式完全不用管是插入 host 口的...