How to get ADB status? - android

This post described how to switch on and switch off debugging via WiFi. Is there way to detect current status for this? I think I need to get current value of service.adb.tcp.port and check it on equals -1. But how to get this value?

To debug via wifi you need to connect your device(phone/ tablet) to the same network as your pc. Get the device's ip from the advanced menu in Settings -> WiFi. Then use this to connect to the device:
adb connect deviceip
Now, when you use adb devices, you should see something like deviceip:5555 device.
UPDATE:
To truly answer your question: to get the value you are looking for just use this:
adb shell getprop service.adb.tcp.port

Related

How to check programmatically whether WiFi adb is connected or disconnected in android?

I am using WiFi adb to run apps.
I want to know if adb is connected or disconnected in my activity.
I don't want to go to the adb app to check if adb connected or disconnected.
Can you suggest some programmatic solution for this task?
You can check the state of port 5555 (or other port you have defined) using netstat. If ADB over Wifi is on, the state of port will be LISTEN.

adb wifi often go offline, how to keep adb online?

I'm using Android tablet communicating with a USB device through USB port, the tablet only has one usb port, so I use adb wifi as my debug tool. However, when I connect adb through WIFI, the connection won't keep long(only a few minutes us usually), how to keep the adb wifi connection online all the time?
Another question, is it possible to use USB HUB to connect the tablet with both USB flash-drive and my computer, and keep adb running?
Many thanks!!!
After lots of unsuccessful attempts,I have noticed that turning Allow ADB debugging in charge only mode specification on , solved the problem . It makes the device online and accessable over wifi to ADB.
You can find it under Developer options section.
Here is what I found out from researching everywhere and developing on my own for more than a week.
Q1. adb service often crashes if it is not doing any executions for a long long time.
A1. calling adb commands time to time keeps adb server online.
Q2. wifi connected device sometimes disconnect.
A2. Before you check your wifi on the connected device, check the wifi that your ADB server is running on. Ping to google and if it is well connected, ping to the device.
Wireless can disconnect on its own and even wired connection is sometimes disconnected. so calling "adb connect ..." when the device is not already connected is necessary. You could do this easily by saving "adb devices > device.txt" and query out whether your expected wifi is on the list. If not, connect again..(do this in another thread).
Q3. wifi connected device is sometimes offline.
A3. This is because by TCP/IP connection your ADB server is now on Time_Wait stance. The last connection was interrupted that the next connection is now offline because the last connection is not completely shut down. You can either manually disconnect/connect your device's wifi or restart TCPIP connection by ex) "adb tcpip 5555"
If you want to do this automatically, you are going to have to disconnect/connect your device's wifi programmatically.
Leave any other questions and I can answer on the comments.
When connection is lost and adb devices shows device is offline, like this:
prompt> adb devices
List of devices attached
192.168.1.1:5555 offline
then adb disconnect IP followed by adb connect IP will often work:
prompt> adb disconnect 192.168.1.1
disconnected 192.168.1.1
prompt> adb devices
List of devices attached
prompt> adb connect 192.168.1.1
connected to 192.168.1.1
prompt> adb devices
List of devices attached
192.168.1.1:5555 device
Use adb over wi-fi without any third-party apps. Follow the steps.
Connect device via USB
Open your terminal and check your device is listed with adb devices command
Type adb tcpip 5555 and enter (or use another port instead of 5555)
Plug out your USB cable. You don't need it anymore.
Take your Android phone and go Settings/About/Status
Check the IP address part. Let's say your IP address is 192.168.x.y
In your terminal, write the command adb connect 192.168.x.y
Now, you have connected your device via wi-fi.
You can see your device in adb devices
Enjoy it! :)
This seems like an issue with your wifi. As a precaution, just keep the terminal open and whenever you need to test just press the 'UP arrow' key to get to previously ran adb connect "<ip>" command.
I tried many ways but this one worked out for me:
force the display on and of in a loop would keep the device online
adb shell input keyevent 224
timeout 2
adb shell input keyevent 26
timeout 58
this turns the display on every minute for 2 seconds
So, I'm using Scrcpy and Adb to wirelessly connect to my Phone(for developing Flutter Apps) and since the screen wasn't staying awake even by Scrcpy --stay-awake command.
I had to change Lock Settings=>Lock Screen => Sleep, and settings to Never Sleep.

ADB over ethernet

I have an android device which I want to connect to using ADB. For reasons that don't matter here I need it to have an ethernet connection, not wifi. The device itself refuses to have both ethernet and wifi connections at the same time.
I have been using a third party app called ADB WiFi to connect to it with ADB when it is in WiFi mode, and I have found that I can connect to it in wifi, then switch the device into ethernet, and then reconnect to the new IP, and it works.
I would dearly like to be able to connect to my device (which is often remote and hard to reach) without first switching it into wifi and back, to which end I have written my own little app which uses SU and does:
setprop service.adb.tcp.port 5555
stop adbd
start adbd
It says that it is working when I run it and produces no error messages, but I can't connect afterwards. It doesn't work in wifi mode either. After setting up a connection once using the 3rd party app, I can then use stop adbd to prevent adb working, and I can use my application above to enable it again, without wifi or 3rd party intervention, which suggests that it is doing what it thinks it is doing, but missing a one off step.
Does anyone know if there is another thing that must be set / enabled / poked in order for adbd to work? Does anyone know what I'm missing?
Thanks
Have you tried this:
adb tcpip 5555
adb connect 192.168.1.1:5555
replacing the 192.168.1.1 with your phones IP Address?
I was able to get both ADB (through USB) and Ethernet, but it was device specific. I used the Asus Transformer Pad TF701T with the keyboard dock. The dock allowed me to connect the ADB cable and provided a full size USB port. I connected a compatible USB to Ethernet adapter to get Ethernet.

How to connect wifi via ADB

Wifi has been enabled on my android device. Usually to connect an available network, I input username and password from UI. Is it possible to do it via ADB or shell script?
you can enable/disable wifi from command line with:
adb shell svc wifi enable|disable
regarding specifying the username & password.. hm... maybe this can help: How do I program android to look for a particular network? (Issues Following Simple Tutorial)
yes of course its possible I also tried this and found this-> How can I connect to Android with ADB over TCP?
i hope this will help you
:)
Install ADB over WIFI Widget, add it to your homescreen, enable it. you will be presented with your IP address
open the terminal and try
adb connect <IP>:<PORT>

How to use adb over Mobile AP (Portable wifi hotspot)

First : I know about abdWireless app. But my problem is different.
I am using my Android mobile as Mobile AP (Portable WiFi hotspot) for using internet on my computer. I want to use adb in wireless mode but the problem is - when i enable Mobile AP on my android mobile WiFi gets turned off and i am unable to use abdWireless app.
I want to use both wireless ADB and Mobile AP at the same time.
Is there any way to do it ???
Developers have created apps for this:
https://play.google.com/store/apps/details?id=com.ttxapps.wifiadb
Once you start this app, you can connect to your phone like this:
adb connect ip_address_of_the_device
However, your phone must be rooted!
Please let me know if this helps!
On mac:
You need to run: ifconfig
Followed by run: arp -a
In my case, the first listed IP is router IP, ie. IP of your android device with hotspot(let it be: ip_address_of_the_hotspot_device).
Then run either: adb connect ip_address_of_the_hotspot_device or adb connect ip_address_of_the_hotspot_device:5555

Categories

Resources