I have problem (challenge) with my app. I want to be connected to the "best" GSM or CDMA cell - the closest, with the best signal, etc... As I turned off the cell-phone functions and turned it on back. That is the thing I want to do in my app, because I need to have the most recent informations of location without using GPS or any data.
Can I find the way, how to force Android to refind the GSM/CDMA cell?
Lot of thanks for all!
For GSM, the cell you are connected to is decided by the network. The network tells the device which cell to use and also when to perform an handover,.i.e. change the cell. I would assume that this functionality is deeply buried in the hardware/firmware of your device with no chance to change it
Related
Is it possible to change the cell which your smartphone is connected to?
No. It is impossible.
Device changes the Cell which is camped via 2 mechanisms:
Cell Re-selection
Handover
Cell Reselection
This mechanism enable the device to find a better cell to register. Basically, phone remains measuring signal level of different cells, frequencies and RAT (2G/3G/4G) and it can then, select an suitable cell.
Since phone choose the best cell, re-selection is possible only when device is in IDLE (IDLE means that no resources are allocated to your device.. there's no DATA Traffic / Call ongoing etc).
Each MODEM vendor has implemented its own Algorithm to decide the most suitable cell but usually, thy always try to move your device to LTE and to the cell with strongest signal level.
HANDOVER
This mechanism allow the phone to move to a better cell while it is on service (during a call or during data traffic). Since you have resources allocated to you, this is fully controlled by network (only network knows if target cell can receive your device and keep delivering the service that you are using).
This is just overview
This is just the basic idea of what happens in Modem side. Even in case of re-selection, a lot of parameters are controlled by network (such as "Start to measure a better cell if the signal level falls below a certain level" etc).
Most important is that you can not manually control it... You can force your device to 2G/3G or LTE. Even then, MODEM side will decide the better cell to you (based on carrier settings for that location) and you can not control it...
Also, each chipset (modem) vendor has its own implementation for this...
Some chipset vendors are Qualcom, Infineon, Marvell, Spreadtrum, Broadcom (RIP)
I wan't to check if the user is operating the phone while a call is being made by using device's sensors and GPS.
I need to check if we are in hand free mode because in that case I should hear noise but may not see any movements or rotation.
I tried looking in android.telephony but found nothing. Also tried my good old friend google and no luck. Is it even doable?
Thanks!
Here you go. Your problem can be divided into 4 steps. Plus you dont need any sensors or GPS to achieve this.
1) Try to get connected Bluetooth Device list, via BluetoothAdapter class.
2) Check device class, via BluetoothDevice's APIs.
3) If you see Phone is connected to Bluetooth Device with capabilities like A2DP(audio) etc. Then you will know phone is in handsfree mode.
4) also try to find out phone_state of the phone. It shouln't be Idle, if you just want to check in state of making/receiving/during call.
I am researching on Cellular connectivity in rural areas.
Is there an API in Android which helps you access Cellular radio properties as a call or SMS is made ?
P.S.: I am not looking for properties like signal Strength or Neighboring Cell Info. I am interested in listening to changes like in increase in CPU cycles, cellular handovers etc.
Edit:
My main reason for asking this is, so that I can detect events from different SIMs in Dual SIM phones as there is no current way of doing this. So by monitoring the radios, I can tell whether this was the SIM that made the call or the other.
Hello I was wondering if anyone could tell me is it possible to read the wifi rssi from another android phone. I am trying to build a simple app that reads the wifi rssi and then uses this to calculate into a distance, I have looked up the WifiManager, TelephonyManager class and the NeighbouringCellInfo, I have even tried to implement a couple of tutorials to no joy. If anyone could point me in the right direction it would be much appreciated.
IMO this will be possible only with Wi-Fi hotspot enable, since this is the only way another phone can see another via Wi-Fi.
If you want to try it out see this thread that helps enabling Wi-Fi hotspot.
Android turn On/Off WiFi HotSpot programmatically
Another thing you might consider is bluetooth RSSI.
Activating bluetooth is more straightforward and can give more precise accuracy (but covers less space).
My intention is to track a mobile device with respect to another mobile device or wifi.
i am looking for some pointers to proceed on building a location tracking system something that does not depend in gps for location tracking instead.
A possible set of approaches might be.
user can click on "start" button on mobile which will be the origin and then start tracking the position w.r.t that origin tracking the direction changes.
A tracking system that depends on Wifi or another mobile device to locate itself
Is it possible for android device to know distance between them , if yes is it possible to know the direction as well?
I would like to get this done on android device , is this possible? i have given lot of search before posting this, so please help me.
Wifi localisation is possible with sensor fusion (still in research for better accuracy).
There are many papers available on this topic in net
http://www.cs.stanford.edu/people/dstavens/icra11/huang_etal_icra11.pdf
http://personal.stevens.edu/~ychen6/mobi248_liu.pdf
http://www.ri.cmu.edu/pub_files/2011/8/RobustIndoorLocalizationTech2011.pdf