Android Interfacing with Ethernet Connection - android

On My Android device i have both Ethernet and Wifi Network connections.
What i wan to implement is I want to check if Wifi and Ethernet both the connections are Active at the same time then I wan to disable the Wifi Network and Keep Ethernet Connection ON.
I am using android WifiManager and BroadcastReceiver android.net.conn.CONNECTIVITY_CHANGE for Checking Wifi state Connected/Disconnected and also to Enabling/Disabling the Wifi Network.
But I am not able to check the Ethernet Connection State and also I am not able to Enable/Disable the Ethernet Connection.
For Checking the Ethernet connection sate I am reading system file '/sys/class/net/eth0' which is returning me Correct Ethernet State. But for Enabling/Disabling Ethernet I am not able to figure it out how to do it.
I have Ethernet Connection Options in the Settings menu provided by the Android from where we can configure Ethernet connection of the device.
In the ConnectivityManager there is an API getActiveNetworkInfo which only returns the currently connection network interface, But I want to retrieve the list of all the Connected Interfaces from where we can connect to internet.
Is there any service running on Android that can give me Access to Enable/Disable Ethernet connection and also API to get the Ethernet connection state?
Thanks.

One Way of archiving it,
Current Ethernet state of Android Device is updated in the file /sys/class/net/eth0/operstate by Android operating system. We need to read this file for getting the state.
File will contain string UP if Ethernet is up else string DOWN if Ethernet is down.
I tried this way and it is working for me.
But not sure if it will work on all the devices with all the Android versions.

Related

Connect Android to laptop without Internet connection

Say I have a laptop (Windows 10) and an Android phone. The laptop does not have an internet connection and the Android does not have an internet connection.
I have an Xamarin app that uses a C# Web API that is deployed to the laptop (for testing). How can I connect the mobile to the laptop without any form of internet connection? I believe I have two options:
1) USB cable
2) Bluetooth
I believe I have to install a wireless hotspot on the laptop and then a reverse tethering on the Android.
Have I understood this correctly? Do I have to do this regardless of whether I use a USB cable or a Bluetooth connection.
Tethering is the name given to a mobile that acts as a hotspot. It make use of a network interface (Wifi, Bluetooth, USB port acting as Ethernet...) to share internet connection through the selected interface.
As you'll note I'm not incluiding mobile data in the list. Mobile data is used to connect to Internet. So your mobile is capable of connecting to internet via mobile data and share it via any other interface, i.e. Wifi, Bluetooth and USB (Ethernet)
At least in my mobile im able to just enable Tethering configuring it from Settings -> Wifi connections -> Share internet. Here I can switch on/off the desired interface: USB, bluetooth or Wifi. I can enable just one, both or even all of those
As far as I know a Xamarin app is an android app that embeddes a website and, optionaly but highly common, uses a server as an endpoint (your laptop in this case), also known as API.
So as you ask you don't want to have internet connectivity, all the connections must be made in a local network. To do so you could just enable tethering and turn off mobile data on your mobile. Then on your laptop, connect to your new network over wifi, enable ethernet or connect via bluetooth, depending on your choose.
Of course, you'll have to handle firewall on your laptop to ensure connections are made successfuly. But you should be able at last to ping each other.

How do I force Android to use wifi network instead of mobile network

I have a use case where I need to use Wifi network for my requests instead of the mobile network. The mobile device has already connected to the Wifi network. But Android seems to always resolve network requests using the mobile data network instead of the Wifi network. Note that the Wifi network does not have internet access, it is simply a wifi access point exposed by an external device during setup.
I tried using ConnectivityManager's setNetworkPreference(ConnectivityManager.TYPE_WIFI) but that did not work.
Disable mobile data while wifi setup is required.
It won't resolve any requests with a carrier network if this is enabled.
Enable aeroplane mode, then toggle wifi

Use Wifi IP instead of 3G IP Android

I've got local wireless network with no internet access, and I use static IP of my router to connect from Android device. When 3G(HSPDA disabled) Android phone see and connect to the router in WiFi network (ssh), however when I turn on 3g, my phone cannot see WiFi router. Is there any workarounds for that without disabling 3G service while using local WiFi in app?
I think you might be suffering from an Android optimization. Try to go to the WiFi settings, hit the menu key and choose "Advanced", and uncheck "Avoid poor connections".
https://android.stackexchange.com/questions/46513/avoided-poor-internet-connection-even-though-signal-strength-speed-is-great

Android wifi hotspot client connection events

I am connecting different devices with wifi hotspot AP programatically in my android app, How can i detect the clients being connected and disconnected and to the wifi hotspot AP i turned on programmatically ? Is there any callback event in Android API to give information regarding the connection or disconnection events of individual devices ?
Thanks in advance.
I think you need to use WifiP2pDevice
There you can check for available devices, and also if they are connected or not.
Try looking here at the available methods here
EDIT:
This Android Wifi Hotspot Manager Class have sample code to scan /proc/net/arp and ping each known client to detect livelihood.
You can implement that logic in a loop to emulate a Wifi Client disconnect event from driver.

Are any android devices capable of connecting to an AP and another device simultaneously?

Since I don't have an Android 4.0 device I haven't been able to test this myself. Also I wonder if connecting device A (a smartphone) to device B (a wifi direct capable device) using Wifi direct would mean that device A would assume it is provided with internet from device B (tethering?). I am trying to make an application for device A that would communicate with a device B that does NOT provide internet, thus it would be interesting to know if such a scenario would lead to device A losing internet connectivity for the duration of the connection. Is the situation different depending on if device A is connected to internet through an AP or through 3G/4G?
Perhaps using Bluetooth would be a solution, but in my case security is an issue, and it seems to me that Wifi direct provides stronger security (WPA2).
Any info would be helpful!
/S
On Android, Wi-Fi Direct doesn't interfere with your connection to the Internet (Wi-Fi or 3G/4G). A problem may be that once your turn on the Wi-Fi (to enable Wi-Fi Direct, your phone will try to connect to one of the saved available networks and will disable your 3G connection. That is because Android (by default) doesn't support dual connection (via both Wi-Fi and 3G/4G), but there is some applications around that claim that they can provide such functionality.

Categories

Resources