I have an idea of making an app in that truck drivers are there with GPS,SO they will get latitude longitude without internet,there will be an admin panel which can track the truck driver's location and location history,So My question is that the truck drivers will only having a GPS enabled Android device (WITHOUT INTERNET),SO how can the admin will track their location? Please suggest me for it .
I suppose you could try SMS messages, though, it might become rather expensive if the re-fresh rate for the location is high.
In simplest solution you would have a mobile device (you need to find one which incoming SMS you can fetch to the PC, might require some internet searching time) with normal number for receiving the SMS messages, or you could see whether you could get Operator service numbers (see whether using free-to-send number would be cheaper) and then get the data from the operator.
Related
A message should display when I'm entering a specific address except address number for instance "Kristian Augusts gate
0164 Oslo".
When I walk to the address and suddenly my gps phone discover that I am located at "Kristian Augusts gate 0164 Oslo" then message should display
How do you create such a functionality? Any advice or tutorial?
Thank you!
First, you need to use a GPS service. You can either do it using Android API or Google Play Services API. The latter is a little more complicated and resource-intensive, but will provide more reliable location methods and callbacks.
Get location using Google Play Services
Then, when you already have the longitude and latitude you can easily get the address associated with that coordinates.
Get address from coordinates
Then you simply check if the current address is the same as the address intended to trigger the message and display it, using an AlertDialog, Toast, system notification or whichever method you need.
I am a beginner in android developing and I am working on a project to create an app to locate cell phones without using GPS.Can anybody help me with how to get the RSSI for GSM and the distance if possible.Any code available for this purpose would be appreciated really.
I would also like to know, what other information can we get from the SIM card.
For SIM information including RSSI, you need to look at the Android Telephony and related APIs.
You can't get the distance from the base station though. You can get the Cell Id, which gives you a rough location if matched up to a database. Cell Id information is proprietary though, and publically available databases aren't always that accurate. Or you could use three Cell Ids + RSSIs to do a rough triangulation calculation yourself. The disadvantages with that are that many devices won't return cell info for the surrounding cells; you still need access to a reliable database of cell locations; ideally you should also include known WiFi hotspots; it's a lot of work to implement something that Android has already done.
Android handles location via its own location and location services APIs. LocationManager lets you choose the desired technology, e.g.NETWORK_PROVIDER or GPS_PROVIDER. So you could just choose not to use GPS, and let Android give you the best available result from the network.
Is it possible to locate a user via user's phone number in Android? If an SMS can be sent to the user then we can also retrieve or get to know the location of the user who we sending the SMS.
I mean is it possible to program the following functionality:
App sends SMS to user's phone
App recieves SMS at user's phone from the SMS sender
App gets location coordinates of the user's phone
App sends location coordinates to the SMS sender via SMS
Also is it possible to retrieve the required location of the user via user's phone number via any other means apart from SMS, EMAIL or CALL?
How come Viber and VChat apps are locating user locations via their phone numbers?
Here are some apps on the app store:
Cell Tracker
Mobile Number & Phone Location
Mobile Number Locator
Seeking for a reliable answer.
Yess, possible with conditions:
If you have your app installed in the user phone and a server app communicating with this app, and there at last one of location service providers activated in the user phone, and some horrible android permissions!
In most of android phones there 3 location providers that can give exact location (GPS_PROVIDER 1m) or estimated (NETWORK_PROVIDER around 2-20m) and PASSIVE_PROVIDER (more in LocationManager official documentation).
1* App sends SMS to user's phone
Yess, can be server app or you create an android app if you want something automated, so you can do it manually by sending SMS from your default SMS app! I use Kannel: Open Source WAP and SMS Gateway and here (lot of APIs to send SMS )
2* App receives SMS at user's phone from the SMS sender
Yess, you can get all received SMS, and you can filter them by sender phone number! and do some actions when your specified sms received, basic tuto here (i do some actions according to the content of my SMS)
3* App gets location coordinates of the user's phone
Yess, you can get actual user coordinates easily if one of location providers is activated, so you can get last known location when the user have activated one of location providers, if those disabled or the phone don't have GPS hardware you can use Open Cell Id api to get the nearest cell coordinates(10m-10Km) or Loc8 api but those not available in all around the world, and some apps use IP location apis to get the country, city and province, here the simplest way to get current user location.
4* App sends location coordinates to the SMS sender via SMS
Yess, you can get sender phone number and send user location, immediately when SMS received or at specified times in the day.
(Those 4 yesses for you :) )
Viber and other apps that access to users locations, identify there users by there phone numbers by obligating them to send SMS to the server app to create an account and activate the free service (Ex:VOIP) , and lunch a service that can:
Listen for location changes (GPS, Network or Cell Id)
Send user location periodically(Ex: each 2 hours) or when user position changed!
Stock user locations in file and create a map based on daily locations
Receive SMS and update user location
Receive server app commend and update user location
Send events when user go inside or outside of a defined circle
Listen for what user say and record it or open live voip call :s
Maybe anything you think or u want to do :) !
And your application users must accept all of that when installing it, of corse i don't gonna install apps like this because i read permissions before installing :) and permissions maybe something like that:
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<-- and more if you wanna more -->
The final user will accept for something like that (those permissions of an android app u asked about):
This app has access to these permissions:
Your accounts
-create accounts and set passwords
-find accounts on the device
-add or remove accounts
-use accounts on the device
-read Google service configuration
Your location
-approximate location (network-based)
-precise location (GPS and network-based)
Your messages
-receive text messages (SMS)
-send SMS messages
-edit your text messages (SMS or MMS)
-read your text messages (SMS or MMS)
Network communication
-receive data from Internet
-full network access
-view Wi-Fi connections
-view network connections
-change network connectivity
Phone calls
-read phone status and identity
-directly call phone numbers
Storage
-modify or delete the contents of your USB storage
Your applications information
-retrieve running apps
-close other apps
-run at startup
Bluetooth
-pair with Bluetooth devices
-access Bluetooth settings
Camera
-take pictures and videos
Other Application UI
-draw over other apps
Microphone
-record audio
Lock screen
-disable your screen lock
Your social information
-read your contacts
-modify your contacts
-read call log
-write call log
-read your social stream
-write to your social stream
Development tools
-read sensitive log data
System tools
-modify system settings
-send sticky broadcast
-test access to protected storage
Affects battery
-control vibration
-prevent device from sleeping
Audio settings
-change your audio settings
Sync Settings
-read sync settings
-toggle sync on and off
-read sync statistics
Wallpaper
-set wallpaper
I checked play.google.com/store/apps/details?id=and.p2l&hl=en
They are not locating the user's current location at all.
So based on the number itself they are judging the location of the user. Like if the number starts from 240 ( in US) they they are saying location is Maryland but the person can be in California. So i don't think they are getting the user's location through LocationListner of Java at all.
Quick answer: No, at least not with native SMS service.
Long answer: Sure, but the receiver's phone should have the correct setup first. An app that detects incoming sms, and if a keyword matches, reports its current location to your server, which then pushes that info to the sender.
The answer is: you can't only through sms, i have tried that approach before.
You could fetch the base station IDs, but this won't help you a lot without the location of the base station itself and this informations are really hard to retrieve from the providers.
I have looked through the 3 apps you have listed in your question:
The App uses WiFi and GPRS location service, quite the same approach as Google uses on the phone. phonesavvy maybe has a base station location database or uses a database retrieved e.g. from OpenStreetMap or some similar crowd-based project.
The app analyzes just the number for country code and city code. No location there.
Dito.
I'm looking for a way to know the country-level location.
How to do it on a phone, or devices that have cellular network connectivity or GPS is clear. But what about devices that don't have that?
I know from Google Analytics that Google has that kind of location information,
How?
How can I get that information as well? Maybe from the play-store locale or something?
By "Tablets" I mean devices that have no GPS and no GSM / cellular network connection.
10x
Use the WiFi aproximated location. It checks your IP adress and tries to locate it geographically.
please see this or this.
a quick summary of the WiFi location method form one of the posted links:
How it works: Unless you opt out, your phone is periodically sending anonymous data to Google with, among other things, your last known location and any Wi-Fi network you were connected to at the time. The accumulated data builds on a database begun by traveling Google Streetview cars that recorded Wi-Fi networks available along their routes (the cars no longer do this).
When using this method, your application will ask for the COARSE LOCATION permission on installation.
Since there's no clear indication (at least none that I've found) whether or not Google estimates location based on IP as a last resort, my 'getCountry' logic would be as follows:
Location location = LocationClient.getLastLocation()
If (location == null) location = getLocationByIp()
where getLocationByIP() will use a publicly available, RESTful free web service such as http://freegeoip.net/
Open to suggestions here. If line 2 is redundant I will be happy to drop it.
Cheers
(Y)
I have written a small app that receives the location from mobile 3g/wifi by using locationManager & NETWORK_PROVIDER parameter.
according to google's api it will get the location i wish (the other option is using the GPS_PROVIDER)
what i really desired was the WIFI location. I wanted to see its behavior and how the phone gets its location (i.e with wireshark)
in order to do that, i changed into flight mode & activated wifi.
then, i launched the app and clicked the button which starts the NETWORK_PROVIDER location service by calling the requestLocationUpdates function with time parameter = 10.
what that actually happened is that i managed to get the location but saw no traffic at all in wireshark.
could it be that Google gives me the approx. location in advance, when connecting to the wifi? (its the only explenation)
If so, is it possible to clear that cache, or whatever data it have stored, and force the phone to get a new (but the same) location?
Thanks in advance,
Eran.
Have you tried re-booting the phone, just so to remove any cache files which might be storing the location?
Since NETWORK_PROVIDER use cell location, wifi ssid and their signal strength to get your GPS coordinates.
Since you are in flight mode and cannot get cell location, just try to switch the connected wifi , maybe google service will be invoked to get new location.