I am currently working on a GPS tracking App for track packages and parcels right from android smart-phone.
After user finishing put their tracking nO., I would like to be able to analyses this data and find their item information.It also can be track location on GPS to view current location in map-view.
-What would be a good way to smooth the track?
I know that I'll need to implement the tracking in a service, and probably show a notification to user for to easier to know thier item have arrived.
-I have read : Create an Android GPS tracking application
and
https://code.google.com/p/open-gpstracker/
-and also, what is the best way to do connect GPS tracking information with the user data that already have in the website?
like my refr.ex :https://play.google.com/store/apps/details?id=br.com.tribotech.trackpack&hl=en
Firstly, you need to know the API of the package carrier you intend to track packages for. Package carriers always provide an API for programmers to get information about parcels.
Examples
UPS: https://www.ups.com/upsdeveloperkit
NZ Post: http://www.nzpost.co.nz/products-services/iphone-apps-apis/tracking-api
etc..
Then write your app to use these API's. Some carriers may provide a GPS based tracking system, which is what you want for your tracking thing.
Related
I work in QA for an company that helps market applications. Currently I have been tasked to ensure location dependent apps function if correctly (ie if im in russia the app displays the russian content and if i change to us the app updates to the us content)
I have tried numerous items to accomplish this but get no where.
What i have tried:
Proxy. Setting this up via wifi to several locations. Both the app and the device still show my current location.
Apps: I have tried all of the following apps and they all give the same result as above.
Fake Location
AutoProxy
Fake GPS
I have enabled developer mode on the devices, and have ensured that "Mock Locations" is checked.
Use case 1:
A developer whats us to test his app which is only available in england. Google Play still sees me in US
Use case 2:
A developer releases a game where the background changes based on your location if i cant force the location change I cant verify this feature works.
Im guessing the fails so far are due to the fact that the location being called in our test apps is network location not GPS?
Any help would be awesome. Even if you could just point me in a direction.
Thank you Greatly
J
Update:
Ok, Thanks to the answers about google play and mock locations. So with those in mind lets think about it from another perspective. If the app is not calling for mock location, Is there anyway to force a mock location override? im trying to cover all the bases here, One app for sure does not use this method, so I still need to find a way around.
depending on how they are calling for the location, I would think (remember im knew here) that using a proxy would work, however as stated above, i'm not getting anywhere there either. Did try a few free proxy's from hidemyass but even the browser wouldn't work with them.
Yes, network location does not get faked by mock location providers. I don't know why not, but it only fakes GPS. In addition, your app has to request the MOCK permission to get it. If it doesn't have this permission, setting a mock location will not actually fake anything to the app. This is for security purposes, so a malicious app can't start broadcasting the wrong location to the phone.
Does the location access have any dependency on activity recognition process?
In some devices i could get my activity recognition sample working only after turning on my location setting
This issue is fixed in latest update of Google Play services(4.3.23 (1069729-030)). All we need to do is replace library project "google-play-services_lib" with latest version(4.3.23 (1069729-030)). I noticed a delay of about 1 minute in AR updates if we toggle location settings, but it works.
The Activity Recognition is part of the Google Play Location API. See the docs here:
Recognizing the User's Current Activity
You can see that this is part of the Location Services offered by Play. Internally there needs to be some way to determine the speed of movement of the device - and that requires location based calculations.
Below is an extract from the Class Overview paragraph of the ActivityRecognitionClient documentation:
It only makes use of low power sensors in order to keep the power usage to a minimum.
This suggests (as the OP pointed out) that the API relies on network location, and not GPS location.
So it would make sense from a security aspect.
If I, as a user, decide I don't want to let any apps see or use my location, then I would expect the Play API to obey that decision.
Anything else, and the security is lost.
in an android application :
Is there an interface defined in android to support this query ?
I've searched a lot on this, but was unable to find more info.
This seems like a fairly reasonable query(provided user permission is granted)
Not possible do to many restrictions - if you were to write an application that managed the user channel changes then you could access the Channel Lineup on the GTV and then it would be possible to know what channel they are on. If however you want to just arbitrarily know what the user has currently tuned to this is not possible - mainly because the user could have used their cable box remote to change the channel and as such the data is not available to the GTV unit.
I am building an application where I would like to have a heart rate over a certain threshold trigger and event. I'm wondering if there's any way to do this by using data retrieved by another app on the phone (heart rate app) in my own application. I would rather not have to build a heart rate sensor from scratch!!
For example, using data from an app like this :
https://play.google.com/store/apps/details?id=com.macropinch.hydra.android&hl=en
Can I even do this? Or do I need a developers permission, or is the data output to files on the phone I can just read?
This is already discussed in another thread. Threre are mainly two methods, one is contentprovider and the other is sharedpreferences. But app that provides data should implement those. Data sharing between two applications
I'm wondering if there's any way to do this by using data retrieved
by another app on the phone (heart rate app) in my own application
If other application is providing remote service (look AIDL) then your application can call that service to achieve functionality.but AFAIK Cardiograph doesn't provide such service.
Or do I need a developers permission, or is the data outputted to
files on the phone I can just read?
The only option i see here is to obtain Souce Code for that obviously you need to contact developer :D
If this application is outputing data on SD card then you can read it.
I would like to replace the default GPS location provider on android phones with my own coordinate source.
Is there any layer/API/library/provider that would allow to be replaced with my signal provider instead of the built-in hardware GPS, or read from an external plugin? It should allow all apps that rely on the GPS service to receive my signal instead of GPS.
Ideally, the replacement should still be able to access the GPS signal (for comparison/correction or to toggle between the two providers).
I am thinking for example of implementing my own LocationManager, and registering it in the system (as optional or default), if that is possible. But at this stage, I am still trying to find out what is possible and suitable.
Thank you for any pointers.
Replacing the "default" is not allowed at this time and the only work around is to create a mock provider. First you must set the security permission:
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
Second, set your code to use the mock provider which you will create. There is some excellent information about how to accomplish this here: http://diffract.me/2009/11/android-location-provider-mock/
I'm only in the process of reading about the android SDK at the moment. However my understanding is that you would provide an implementation of a GPS_PROVIDER intent.
Any application can then divert to using the user preferred GPS_PROVIDER intent.
See:
http://developer.android.com/guide/topics/intents/intents-filters.html
I'm pretty sure the default location providers for fine location are baked into Android.
Given that Google are becoming more conscious about potential misuse and abuse of system resources by applications, i'd say that's a good thing. Otherwise people would be able to trick the user into thinking they're somewhere else, using the trustworthy sounding 'Use GPS satellites' setting.
The only way I can see that you can add a location provider is via android.location.LocationManager.addTestProvider(......), which requires the permission ACCESS_MOCK_LOCATION. Now, this method and permission are both documented as being for "testing" purposes. I can't find a source that specifically says that that permission is not granted for market release apps, but I strongly suspect that to be the case.