range of distances in which Wi-Fi direct works - android

I'm developing an android app which is based on WiFi Direct technology(P2P), so I really need to know how many meters is the range of android WiFi direct performance.based on Android API Guides:
you can discover and connect to other devices when each device supports Wi-Fi P2P, then communicate over a speedy connection across distances much longer than a Bluetooth connection.
but knowing that is not enough for me. because of my aim I need numbers! I mean a range of distances in which Wi-Fi P2P works.

Typical Wi-Fi devices extend their signal up to 100 meters. Source
However the biggest of horror of Wi-Fi is Line of Sight (LOS) which may drop your range dramatically.
That's because Wi-Fi signals at 2.4GHz or 5GHz frequencies. These are easily disrupted by interfering obstacles such as furniture, walls or even mirrors (whose metallic layer reflects the signal) or even water that absorbs the waves. If the app is to be used mostly outside, such obstacle count is supposedly greatly decreased.
Extra:
Wi-Fi signal strength is influenced by a factor called attenuation. Here's a Cool Table displaying the materials influence on the signal.
You might also want to keep in mind that Android Wi-Fi P2P (Wi-Fi direct) is available only since API 14 (4.0 ICS).
Though Samsung allowed using the Wi-Fi Direct ability to connect to devices since API 9 (2.3 Gingerbread).
Anyhow you might want to think if users are "there yet", to be using this standard.
I also liked this Video comparing Galaxy S3 and iPhone 5 connectivity to a GoPro Hero 3 Camera. The maximum range he reached was 100 yards (~90 meters) with perfect LOS.
EDIT:
Antenna-Theory a website dedicated completely to antenna's states that:
Wi-Fi Antenna Efficiencies for handheld mobile devices are typically
on the order of -6 dB to -2 dB
While various online sources note that average laptop antenna efficiency is from -3dB to 3dB, which is not that much different from the cell phone.
You can't really figure out the actual numbers as it all really depends on the surroundings, the target's antenna and the users antenna.
Still phones tend to have lower range than that of the laptops and it's probably between 50-80 meters in clear sight.
Sorry but I can't provide more accurate information as i'm no physicist or a technician, and what you're asking for is pretty abstract :)

This site says the range of WiFi-direct of phones is about 200 feet (~60 meters) while bluetooth has a range of 30 feet (~10 meters).
The official Wi-Fi direct site (see under the point "How far does a Wi-Fi Direct connection travel?") states that the maximum range of WiFi-direct is up to 200 meters (which is 656 feet), but I highly doubt that phones already achieve this range...

"Wi-Fi Direct devices will operate at the same speeds or data rates and range as current Wi-Fi gear. This maximum of about 200 Mbps at 200 feet is much more than the 3 Mbps at 30 feet with Bluetooth. This means you can share and communicate much faster and farther with Wi-Fi Direct."
source: http://www.ciscopress.com/articles/article.asp?p=1620205&seqNum=2

I've done my research on this in the past. Similarly with the other answers, I found that the maximum distance "The Wi-Fi Alliance" claims it to reach is 656 feet. I could be wrong, but I feel that it may be possible to connect both devices to an Apple AirPort device and extend it quite a bit.. Of course you can't expect all of your app purchasers to have one, but in the testing phases it may prove to be very useful.

Related

How to separately control the wifi module in Android development?

Now many Android phones have already support 2*2 mimo which means there are 2 wifi modules inside the phone. I wanna separately control these modules, one for sending signals and the other for receiving signals. How to directly control the hardware? I do not find relevant information in google documents.
As far as I know, there is no official way / API interface to control the WIFI modules or the antennas directly.
In my opinion, it does not make sense to do so. With MIMO, the best antenna is automatically calculated and used based on the quality of the input signal.
Here is a good explanation from Intel:
MIMO technology uses a natural radio-wave phenomenon called multipath. With multipath, transmitted information bounces off walls, ceilings, and other objects, reaching the receiving antenna multiple times at different angles and slightly different times. In the past, multipath caused interference and slowed down wireless signals. With multipath, MIMO technology uses multiple, smart transmitters and receivers with an added spatial dimension, increasing performance and range.
https://www.intel.com/content/www/us/en/support/articles/000005714/wireless/legacy-intel-wireless-products.html
What you are planning to do, however, would go against this principle and turn the MIMO antennas into two SISO (Single Input Single Output) antennas.
This would only be possible with a rooted smartphone or an XPOSED module.
If you want to find out how many antennas are built into a smartphone, I would recommend the WIFI Alliance website. Here you can find detailed information about all certified smartphones.
Website WIFI Alliance
For Example the Spec Sheet of the Oneplus 6t
Oneplus 6t WIFI Specs

altbeacon RSSI on different devices

I've done some experiments on different devices and I made each of the scanner and receiver at the same time and saved RSSI get from other nearby devices but the result was strange. first, there was a Huawei p6 that could scan other devices signal but nobody could see its transmit signal. second, the RSSI was completely device-dependent although beacons setting was the same for all of them inside the application and I want these signals to approximate their distance from each other.
question is that is this library reliable for my purpose which is getting approximately distance of devices from each other? I should mention that these results have gotten from android devices and I think that iPhones are another problem
The fragmentation in Android devices means that there is a huge variation in not just bluetooth chips, but in the external bluetooth antennas and phone cases that affect the strength of the signal Android devices receive and transmit.
While the distance estimates provided by the Android Beacon Library are useful for finding the relative distances to different beacons, using the value as an absolute distance estimate will not be consistent across different Android devices. The library does provide a way to tune its distance estimates to a specific hardware model, but unless you are targeting only a small number of devices this approach is not practical to tune for thousands of Android models out there.

Bluetooth Low Energy (BLE) - Limit advertising distance for all Android devices

I and a couple of friends have got a list of requirements for a new project. This project, basically asks us to synchronize a specific directory in a laptop with the user's phone (just like dropbox does) but using BLE for the communication.
Everything is working as expected. We're using Android on the phones and a BlueGiga USB dongle on the laptop side. The only problem we're facing is that we cannot limit the distance in which the phone is detected.
We do know that we can modify the TX Power and also the Advertising mode as it's explained here (https://developer.android.com/reference/android/bluetooth/le/AdvertiseSettings.html). The real problem is that we cannot get the same max distance on every phone because of differences with the chipsets, antennas, etc throughout all the Android devices in the market.
How could we do to limit the connection distance to 1 meter for all the devices running Android? We'd need to rely on the RSSI values but I'm open to different approaches anyway.
Thank you very much in advance guys and remember that everything is working perfectly. We just need to adjust the max distance.
Thanks.
Max.
Simple answer: You can't get an absolutely exact range limitation because of the physical properties of electromagnetic radiation. There are so many things you have to take into account, which makes it a quite difficult and complex task.
What you can do is very sophisticated calculations based ony many different factors to get an approximation. As already mentioned in the comments, you might find helpful libraries with algorithms and formulas for well known devices, chipsets antennas etc. so you don't have to do all the calculations on your own.
With the help of some libraries and tools, you may be able to quite safely determine if the device is within a range of between 1 and 3 meters.

Maximum output amperage from USB Smartphones

The Output voltage from an USB port is 5v, and it can't be changed, isn't it?!
But what is the maximum amperage that I can drain from a smartphone?
It depends on the battery, hardware or is limited by the OS?
There is difference between Android/iPhone/otherOS phones?
Can I control the output amperage with an App? And if the phone is rooted?
Important example what is the maximum amount of current that can provide Iphone 6 from USB?
The official maximum on current provided on USB 2 OTG port is 500mA and minimum is 8mA when the port is in Host mode.
Source http://www.usb.org/developers/onthego/otg1_0.pdf #2.5
The USB 2.0 specification allows the voltage output from a USB port to be anywhere between 4.40 V and 5.25 V, but it is typically 5 V.
While you could construct a USB port that has a different voltage, you should probably not do that because a normal USB device you plug into that port could malfunction or be damaged. It's unlikely that your phone provides a feature for changing the voltage of your USB port.
The USB specification allows devices to draw 100 mA from a USB port before they have reached the "configured" state (see Chapter 9 of the USB specification for more information about USB device states). Once the device is configured, it can draw more current, as long as it doesn't exceed the amount of current specified in its configuration descriptor.
If your phone does not get the device into the configured state by default, it might be possible to write an app to do it, thus allowing your device to draw more than 100 mA without violating the USB specification.
Not sure what you're trying to achieve...
An iPhone 6 can provide some (limited) power to devices plugged into its lightning port (it doesn't have a USB port).
There are cables that connect the phone to a host computer (or charger) over USB, but you're not going to get power out of the phone that way (only power into the phone).
A lightning connector uses active electronics inside the connector's cable to get the phone to assign functions to the different pins.
Moreover there's authentication involved, preventing you from making anything yourself for it without apple's involvement. You'd need to join the MFi program to get the needed documentation.
There's an NDA involved, and Apple is notorious about such things, so you're unlikely to find much reliable and/or verifiable info on the Lightning conector till you join the program.
See also here.
A list of USB standards and their voltage/current ratings is shown on wikipedia
The Nexus 5X and 6P seem to be the first phones to support power delivery via USB Type C connection: Link
However there is conflicting information on how well this is implemented.
Your goal of a 3A output current seems to be possible with USB-PD, but it would appear that no smartphones are currently supporting this.
Important example what is the maximum amount of current that can provide Iphone 6 from USB?
An iPhone with a Camera Connection Kit will limit you to 100 mA. If you connect a device that claims more than this in its descriptors, or tries to draw more than this, it will get cut off with an error:
As reported by this iPhone 6 and 6 plus may be able to supply a current of about 1 Ampere at the voltage at which they get charged. Though I can't be very sure about it unless the specification of the USB drive used are provided.
3A of currents seems to be way too much. If it would have been possible, they could have used it to charge mobile phones faster (I don't know if they do use 3A chargers or not, but this can be seen on their charger at the output tag ).
I would have not done such an experiment until and unless I was very sure about it.
Disclaimer : What ever experiment you do, you it do at your own risk. In the above answer I have just tried to explain what I would have done and have provided reason to back that.
Amperage drained from the power supply is proportional to these factors:
1- The net device's impedance(including battery and other feeder circuits).
2- Device's internal current limiter.
3- Power supply's maximum current limitation.
power supplies usually provide less amperage than it is dictated by the device. If they provide more of, their constant voltage, i.e. 5V, drops below its standard. Therefore, the limitation is posed by the supplies in the first place.
Devices, provide you with another current limiter to lower the risk of using failure of nonstandard power supplies. I'm not sure whether you can change the maximum threshold of internal current delimiter to drain more power or not, but I'm sure you can not change it in your power supply.

Way(s) to detect nearby mobile devices using the Android SDK?

I'm contemplating the development of an Android app that detects all or most nearby mobile devices (iPhone, Android, etc) in the immediate neighborhood that are turned on. I don't need to interact with these devices, just detect them, and a requirement is that the detected devices can't need to have any special / unusual apps installed on them. The app only needs to work for typical U.S. devices and networks.
I've thought about a few ways to do this (somehow detecting bluetooth, wifi, or cellular transmissions / identifiers), but I'm looking for specific implementation methods for a way to detect a relatively large proportion of nearby devices. I'm not sure which of these methods is possible / feasible or how to put them into practice...
Perhaps using Bluetooth: Is there a way using the Android SDK to detect non-discoverable Bluetooth devices (not in discoverable mode)? The Nokia Developer site seems to suggest this is possible using Service Discovery Protocol (SDP), but I'm not sure if this is possible more generally in Android. 
Perhaps using cell tower mast switching simulation? Ok, this is almost certainly beyond the reach of Android, but this article suggests that there may be a way to "mimic cell mast switching process to trigger quiescent phones into transmitting. Phones respond with their ID and authentication signals...".
I think you should see this, it is a paper, and you cannot view it for free, but in the summary, it clearly states:
Concerns about Bluetooth device security have led the specification of the “non-discoverable” mode, which prevents devices from being listed during a Bluetooth device search process. However, a nondiscoverable Bluetooth device is visible to devices that know its address or can discover its address. This paper discusses the detection of non-discoverable Bluetooth devices using an enhanced brute force search attack. Our results indicate that the average time to attack a non-discoverable Bluetooth device using multiple search devices and condensed packet timing can be reduced to well under 24 hours.
But for an android application, you need the detection time to be well under a few seconds instead of less than 24 hours, so a practical solution may not yet be available.

Categories

Resources