簡體   English   中英

如何判斷ADB是否檢測到android設備?

[英]How to tell if android device detected by ADB?

通過USB連接時,我正在使用ADB將文件從Java應用程序推送到平板電腦。 我希望能夠檢測ADB是否通過USB連接了設備。 我用來推送文件的代碼是:

public void wiredsync(){
        try {
            abdsourcesync = buildpath; 
            adbtabletsync = "/mnt/sdcard/test"; 
            System.out.println("Starting Sync via adb with command " + "adb" + " push "+ buildpath + " " + adbtabletsync);
                    Process process = Runtime.getRuntime().exec("adb" + " push "+ buildpath + " " + adbtabletsync);
                    InputStreamReader reader = new InputStreamReader(process.getInputStream());
                    Scanner scanner = new Scanner(reader);
                    scanner.close();
                } catch(IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    }//end wiredsync

如果未連接平板電腦,如何修改此代碼以解決問題?

謝謝您的幫助。

安迪

通過使用Eclipse插件也使用的ddmlib.jar,可以監視設備的connect / disconnect事件。 ddmlib通常位於Android SDK的tools / lib目錄中。 但是沒有有關如何使用它的官方文件。 下面是代碼示例。 您必須包括ddmlib.jar並根據您的環境更改adb位置。

import java.io.IOException;

import com.android.ddmlib.AndroidDebugBridge;
import com.android.ddmlib.AndroidDebugBridge.IDeviceChangeListener;
import com.android.ddmlib.IDevice;

public class Main {

    public static void main(String[] args) throws IOException {
        AndroidDebugBridge.init(false);

        AndroidDebugBridge debugBridge = AndroidDebugBridge.createBridge("D:\\android-sdk\\platform-tools\\adb.exe", true);
        if (debugBridge == null) {
            System.err.println("Invalid ADB location.");
            System.exit(1);
        }

        AndroidDebugBridge.addDeviceChangeListener(new IDeviceChangeListener() {

            @Override
            public void deviceChanged(IDevice device, int arg1) {
                // not implement
            }

            @Override
            public void deviceConnected(IDevice device) {
                System.out.println(String.format("%s connected", device.getSerialNumber()));
            }

            @Override
            public void deviceDisconnected(IDevice device) {
                System.out.println(String.format("%s disconnected", device.getSerialNumber()));

            }

        });

        System.out.println("Press enter to exit.");
        System.in.read();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM