AdvancedSharpAdbClient icon indicating copy to clipboard operation
AdvancedSharpAdbClient copied to clipboard

How to construct a DeviceClient

Open itapi opened this issue 1 year ago • 4 comments

What can we do for you?

I want to listen to a device connection,but I don't know how to obtain a "DeviceClient" object,so I can execute actions on it...I have the DeviceData but it doesn't help me much...

public async Task Start()
{
    StartServerResult startServerResult = await AdbServer.Instance.StartServerAsync(@"C:\Users\laptop\AppData\Local\Android\Sdk\platform-tools\adb.exe", false, CancellationToken.None);
    Trace.WriteLine(startServerResult); // result is already running

   
    DeviceMonitor deviceMonitor = null;

    deviceMonitor = new DeviceMonitor(new AdbSocket(new IPEndPoint(IPAddress.Loopback, AdbClient.AdbServerPort)));
    deviceMonitor.DeviceConnected += (sender, e) =>

    {
        Trace.WriteLine($"Device connected: {e.Device}");

        //need to obtain a DeviceClient object,to execute a swipe method.
             

    };
    deviceMonitor.DeviceDisconnected += (sender, e) => Trace.WriteLine($"Device disconnected: {e.Device}");
    deviceMonitor.DeviceChanged += (sender, e) => Trace.WriteLine($"Device state changed: {e.Device} {e.OldState} -> {e.NewState}");

    await deviceMonitor.StartAsync();

    // Additional code if needed
}

itapi avatar Feb 11 '24 16:02 itapi

Screenshot_20240208-115529_Termux.png

wherewhere avatar Feb 12 '24 07:02 wherewhere

@wherewhere thanks mate! I know that I can init a new adbclient,but I want to listen in the background for a incoming device connection and disconnection...and the device monitor classs provide me that function....how can I do it with adbclient?

itapi avatar Feb 12 '24 07:02 itapi

DeviceClient doesn't use IAdbClient. It use IAdbSocket to monitor device list changing. So you need to init an AdbClient by yourself. You can save one as a static property and use it when device list changed.

wherewhere avatar Feb 12 '24 07:02 wherewhere

@wherewhere thanks sir! Sorry to bother you,but can you please give me a code example for it?

itapi avatar Feb 12 '24 14:02 itapi