Kindle Fire and Google Maps api - android

We're developing an app with some map features, with
<uses-library android:name="com.google.android.maps" />
in the manifest. It runs well on a Xoom and a Galaxy Tab, as well as several phones. It also runs fine in one of the Google APIs emulators. When installing to the Kindle Fire, we get
[2011-12-20 16:25:04 - android] Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
[2011-12-20 16:25:04 - android] Please check logcat output for more details.
[2011-12-20 16:25:04 - android] Launch canceled!
with
E/PackageManager( 1385): Package <package> requires unavailable shared library com.google.android.maps; failing!
W/PackageManager( 1385): Package <package> couldn't be installed.
D/AndroidRuntime(12606): Shutting down VM
This post: https://stackoverflow.com/a/4509787/931277 confirms what I was starting to suspect, that the required api is really missing from the device.
Is there any way to include this library with an application, rather than relying on its inclusion in the Android build on the device?

Not only is there no "way to access this api", but what you are suggesting as the alternative ("hunting down a Google Maps apk and installing that onto the Fire") is not only a copyright violation but probably will not work, since the Google Maps app will not supply the system library that other apps would use.
UPDATE based on edit:
Is there any way to include this library with an application, rather than relying on its inclusion in the Android build on the device?
No, sorry. Google licenses Google Maps (app and system library), and there are no distribution options outside of licensing it from Google for use with firmware.
You might consider OSMDroid and OpenStreetMap, or using WebView and the Web-based Google Maps.

deCarta offers a full featured Android API for mapping, geocoding, reverse geocoding, advanced driving directions, and POI search. It runs like a champ on the Kindle Fire and offers both OpenGL or Canvas based map rendering. Check it out:
http://developer.decarta.com/Apis/Android
also: if you register on the site you actually get all the source code for the entire API free. They also have HTML5 APIs that work great on the Kindle browser as well.

Have you tried this http://code.google.com/apis/maps/articles/android_v3.html

Amazon now offers a MAPS API, with two core features:
Interactive Maps. You can embed a Map View in your app for customers to pan, zoom and fling around the world. You have the option to display a user’s current location, switch between standard maps and satellite view, and more.
Custom Overlays. You can display the locations of businesses, landmarks and other points of interest with your own customized markers and pins.
check it out here https://developer.amazon.com/sdk/maps.html

Related

Can google maps be used on a normal api rather than in google api's?

I want to use a google map to display a persons information only if he wishes to. Otherwise he will be on another screen doing something else but the map updates automatically even when he is not looking at the map?
And also i want the application to run on all versions of android rather than only a phone which has specific google api's . If i create an application using the third party google add-on, will it also run on a normal device with say like android 2.2 or 2.3.3 version?
The first thing sounds, like you want to update the map in the background, while your user is not on the MapActivity. To do so, you can use a Service.
When using the Google APIs, they have to be installed on the targeted device. From the documentation:
The <uses-library> reference is required, because it enables the
build tools to link your application against the Maps external
library. It also ensures that the Android system will not install
your application on a device unless the required library is
available.

Android App to BlackBerry Playbook - Google Maps Issue

I'm porting my android app to playbook and keep getting an error related to not supporting Google Maps, however I don't use that anywhere in my project. It's also not mentioned anywhere in my manifest.
I'm at a loss here, not sure what to do next. Any ideas?
Just to update on this: I was able to compile and run the app on the emulator w/ that warning present so - lets see if it gets past approval process, will update.
The Google Maps API for Android is unsupported on the Blackberry Playbook. See https://bdsc.webapps.blackberry.com/android/apisupport/ for a list of what can and cannot be ported.
For now, there is no way around this. If you want to create a Google Maps application for the Playbook, you will need to use the AIR SDK with the Google Maps Flash API

Is it possible to create a plugin built on top of Google Maps for Android?

I currently am planning a small, but useful, addition to Google Maps for Android. I was wondering if I could create a .apk file that, when installed, adds a feature to the stock Google Maps for Android. The only thing I have found is Google Add-on API, although I don't think this is what I want.
If I use the above add-on API, I would be able to create a stand-alone application which fully implements Google Maps API... right? Please give me some clarity here, and let me know if I'm missing something.
The Google Add-on API is a set of classes that allow you to show google maps inside your application. Most apps use this for simply showing a map with some sort of marker on it.
The out of the box functionality is fairly limited and not nearly as feature rich as the google maps application. With enough time and effort you could possibly build a replacement for google maps but it's not as simple as just adding on functionality.
See here for a guide on how to get started using the APIs.
It now is possible to create plugins for google maps or any other app provided you have root access for your android device. once you have the root access, you can use the Xposed framework created by one of the XDA recognised developer rovo89
Please note that this will be only available for the rooted devices that have this framework installed. Again this is an indirect way to enhance any application deployed on your device provided you have an idea of which methods you need to hook into. in the same thread mentioned there is also a link to toutorial which explains how to use the xposed framework to modify and create your own mods.
For non rooted devices, unfortunately, there is no way to implement this functionality.

INSTALL_FAILED_MISSING_SHARED_LIBRARY

I have a map application. I want to install it on a device having no maps library available. Can't I burn in along the app.
No, you can't "burn in along the app", unless you're a pirate. Google Maps is software that is licensed by device manufacturers or is obtained from the Android Market. If a device does not have it, there is nothing you can do about that fact.
There is an undocumented android:required attribute on the <uses-library> element. However, we have been told it is safe to use, that it being missing from the documentation is merely a documentation bug. You can use android:required="false" to allow your app to run on a device that lacks Google Maps. This does not magically add Google Maps, though, and so if you try to start a MapActivity, it will crash. But, using Class.forName(), you can see if MapActivity exists, and if it does not, do something else for your maps (e.g., WebView and Web-based Google Maps, OpenStreetMap).

Android app using Google Maps library, installable everywhere

Is it possible to use Google Maps Android library in my app in a way, that the app can be installed even on phones without Google Maps? On phones without Google Maps, the maps feature would be disabled.
Is it possible to use Google Maps Android library in my app in a way, that the app can be installed even on
phones without Google Maps?
There is an undocumented android:required="false" flag you can put on the <uses-library> element. I am hopeful that they will document this in a future release. With that set to false, you would need to use reflection to see if Google Maps is loaded (e.g., try to find the MapView class) -- if not, disable whatever would lead the user to a map.
If anybody else has the same problem (I do):
On this Android Developer page it says -- as far as I can tell -- that you can reference the Maps API and thus have e.g. a map activity in your app by using Google Play services:
"The Google Maps Android APIs are not included in the Android
platform, but are available on any device with the Google Play Store
running Android 2.2 or higher, through Google Play
services.
To integrate Google Maps into your app, you need to install the Google
Play services libraries for your Android SDK. For more details, read
about Google Play
services."
Apparently it is an actual app (it is installed on my phone) that updates certain Google stuff.
So it seems it is possible, but only for devices running Android 2.2 (API level 8) and above.
I find the explanation on that site a bit unclear, however, and I have not been able to test this on my own.
In my case, I guess I have to live with the fact that not all devices will be able to install my app, since I target an API < 8.

Categories

Resources