If the built-in google-maps app is started via an intent, like so
string maps = "maps.googleapis.com/maps/api/staticmap"
string addr = "center=422+Android+Blvd+10110";
string key = "key=Ab4jk3j4k34jk34jk3"
string url = "http://" + maps + "?" + addr + "&" + key
Intent intent = new Intent(Android.Content.Intent.ActionView, Uri.Parse(url));
intent.SetClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
StartActivityForResult(intent,(int)ActivityRequestCode.Map);
can an API-key be specified in the request's url so that it will be serviced in the same way as when
using them in requests from the v2 MapFragment/MapActivity/MapView ?
I think all my syntax and such is correct, because the first request I made today was fulfilled, but all subsequent requests have been ignored. It's as if the service is enforcing it's abuse policy against my IP.
A debug.keystore file was used to extract the SHA signature from, and an entry was made in the manifest file with the generated key:
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application>
<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="Ab4jk3j4k34jk34jk3" />
</application>
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SET_DEBUG_APP" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:glEsVersion="0x00020000" android:required="true"/>
</manifest>
Since my requests are being ignored, I think maybe the built-in maps app doesn't support requests with keys specified in them. There are technical limitations as to why I cannot use the newer v2 style MapFragment/MapActivity (or whatever it's called).
I've tried three key types, two "browser apps" and one "android apps":
Thank you.
The browser API key differs from the mobile application API key, so you will not be able to use the API key you have generated from your keystore as it is only for your app.
Using static (browser) maps is afaik without keys, however if you are displaying a map on a specific domain on a web page you will need to use an API key.
Google Maps v2 - Intent URI Arguments
Related
I am using google map direction api and my api key is on billing mode.When I try to use this map API..It works only on one device(When I installed it for the first time).
I am unable to use it on any other device.My map becomes blank.
Free trial api's works fine!!
Please give the permissions with your manifest. First, in the following you need to replace the package name with your package.
<permission
android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
per your package name, should be --
<permission
android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.barcodelibrary.permission.MAPS_RECEIVE"/>
Finally, you seem to be missing the following permissions.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
I hope it will work for you.
There are two possible
1.Please change your api key and check it.
2.Otherwise, you have to build an apk from which android studio id you give to get api key from android google map.
I am working on a project which has google map configuration and view.
But i can't see google map on the activity. The map has been loaded but not showing the details. Please see the image give.
See there is Google logo in left bottom corner. but still not showing the map on screen.
Following is Menifest.xml
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="key------" />
<permission
android:name="com.roadyo.passenger.googlemapsv2.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.MAPS_RECIEVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
Please check your api key.
Follow this link to generate api key for google maps
Google map console
Here is a simple example of how to use maps in our app, it gives step by step implementation of it, including registering app foe google APIs...
http://javapapers.com/android/android-show-current-location-on-map-using-google-maps-api/
Check your Sha1 and package name used to generate the api key. I have also got this error when i checked it its beacause of the mistake in package name and i regenerated the key by changing the package and i got it correctly
I cannot get Google Maps to work on my app.
I see a blank screen; no grids show, only the google logo and the +/- zoom buttons.
What I have done:
I have the "Google Maps Android API v2" API enabled
I have added my project along with the demo project to the API credential list on Google console
I've also added the required permissions for Internet, location, com.google.android.providers.gsf.permission.READ_GSERVICES.
Even added the "MAPS_RECEIVE" permission as some posts suggested
Also added the 'meta-data' google_play_services_version
Since the demos are working, I literally copied MultiMapDemoActivity and its files into my project and tried opening map, to no avail.
The problem may be linked to this issue. However, it seems like they can't get map to work at all.
Here is the interesting bit that I noticed, I usually get this:
10-02 12:29:20.376: D/REQUEST(5826): Connection opened to:https://clients4.google.com/glm/mmap/api
10-02 12:29:20.376: D/REQUEST(5826): Open Connection
Followed by this:
10-02 12:21:45.361: D/REQUEST(5826): DRD(80): 62|132
10-02 12:21:45.361: D/REQUEST(5826): Close
10-02 12:21:45.361: D/REQUEST(5826): Error processing: com.google.maps.api.android.lib6.b.d#42caa7b8 not retrying
10-02 12:21:45.361: D/REQUEST(5826): Retrying: com.google.maps.api.android.lib6.gmm6.c.a#4296a530
Also, not sure if this is relevant, but as soon as I click to open the map, or click on the map after it has opened and is showing a blank view, I see this:
10-02 13:03:32.978: E/DatabaseUtils(15468): Writing exception to parcel
10-02 13:03:32.978:/DatabaseUtils(15468): java.lang.SecurityException: Permission Denial: get/set setting for user asks to run as user -2 but is calling from user 0; this
requires android.permission.INTERACT_ACROSS_USERS_FULL
EDIT #1
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
EDIT #2
Also, the declared package name was com.A.B.C (the manifest); whereas the activities of my project had the structure of com.A.B..
I have since updated my project structure to match that of the manifest, but I still see the same errors as before, nothing changes. I'm really at sea here, since I cannot understand what could be going wrong here.
Some help to resolve this will be appreciated, thanks!
It turns out that I had read n-1 questions regarding this issue here. Finally, after continuous searching everywhere, I stumbled upon the answer here by #Jack.
Basically the line:"HttpsURLConnection.setDefaultSSLSocketFactory(...)" was the culprit in my code. I commented it out and everything worked fine.
NOTE: I have not tried to keep the line of code and modify it to make maps work yet. If I need/do it, I'll post a comment.
You need to add your SHA1 fingerprint to the public API access.
Go to eclipse > preferences. Android > build and copy your default eclipse SHA1 fingerprint.
Now go to https://console.developers.google.com select your app, 'APIs and auth' > 'credentials' > and click on 'Edit allowed android applications' put your SHA1 figerfirnt like that:
XX:XX:XX:XX:XX...XX;com.your.pakage.app
What about your google key? This line in the Manifest file:
<meta-data android:name="com.google.android.maps.v2.API_KEY"
....
I am also struggling with such behavior constantly. The first thing you want to verify in such situations is that your key from debug.keystore file is indeed the one that you registered with Google. This key will be used when you are debugging your application locally.
Note, however, you will need another keystore file when you release your application. At the time of signing, you should create another keystore, and register it too with Google.
I had this problem too and it took me so much hours to resolve it, at last I've done these steps and it worked finally!
Do the same steps as it followed here https://developers.google.com/maps/documentation/android/start
Use the debug certificate fingerprint if you're testing your project instead of the release certificate which you use when you install your app in the play store.
Don't forget to add the value of the Google API and replace the "API_VALUE" with it.
Change your project build target into Google APIs: Project>properties>android>target.
Hope this helps..
These are the permissions you need according to Google documentation:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- The following two permissions are not required to use
Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
I recommend you to include this too:
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
Add those in your manifest file
<permission
android:name="xxx.xxxx.xxxx.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="xxx.xxxx.xxxx.permission.MAPS_RECEIVE" />
<uses-permission android:name="xxx.xxxx.xxxx.permission.READ_GSERVICES" />
replace xxx.xxxx.xxxx with your package name
Google maps background is not displaying in my device/emulator.
First i created
1. Certificate fingerprint MD5 (SHA1).
2. API Console
under services- Google Maps Android API v2 and Places API is activated
3.I got the API key, i placed api key in my layout file.
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="#+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:apiKey="Api key from google"
android:clickable="true" />
Manifest file
...
the maps look like this.
The Map image on a emulator. (Evernote note shared link not spam)
To use google Map Service,
Please visit code.google.com and get you ApiKey.
create a project there->go to services->Activate the Google Maps Android API v2. Then Create Key for your application.
Add the following permissions to your manifest.
uses-permission android:name="com.anchit.locationapi.maps.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Use
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="your_apikey" />
also add following in your application tag in manifest
android:name="com.anchit.locationapi.maps.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
If you are using Google Map V2, then your xml declaration is wrong.
New Google api need below code:
Google Map apiV1 is deprecated and you cant create new key for map api V1, only older exisiting keys are working not newer one. So try with this new things.
I am working in Iran, I had used Google map v1 for long time, now that I have to use Google map v2, I just can see a grey blank page with zoom icon only, I have done every thing based on Google instructions, I think I have done everything.
*I WANT TO KNOW IF THIS PROBLEM IS RELATED TO GOOGLE POLICY THAT MEANS SOME COUNTRIES ARE NOT ALLOWED TO USE GOOGLE PLAY SERVICES AND MAP .... *
THIS IS A BIG PROBLEM FOR ME NOW
THX
this is the manifest file of my code :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pea.map001v2"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="12"
android:targetSdkVersion="17" />
<permission
android:name="your.package.name.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="your.package.name.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.
permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.pea.map001v2.MainMapActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyCk0HwJYHIjM9W_eqqTB1C5wyB-2B0B5U4" />
</application>
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
</manifest>
You Must Run your app in amulator having Following Configuration....
Google API(x86 System image)
Select checkBox indicating "Use Host GPU..."
If anything this could be related to Iran's policy and not Google's.
The problem you describe usually happens when you have a problem with the API key you have generated or the way you registered it in the Console.
You can go over this blog post I wrote on getting the Google API V2 key:
Google Map API V2 key
Maybe, you missed one of this:
Didn't include the Google API Key v2 in the manifest.xml
Didn't add the package name in Android maps Key(Console) , example:
ABczzisierkaiSAisi-Ka2;my.project.package
Didn't add Internet Permissions, on manifest.xml.
Your Android device doesn't have an internet connection
NOTE: If you are using a Virtual Device, it won't work, beacuase it needs Google Play Services
I used to face the same problem as yours. The first thing you need to check is Google Maps Android API Key. Then check the settings in AndroidManifest.xml. There are detail instructions in following link: Android Maps Android v2
yes, it's because of country ._.
i have this issue too on javaScript apis, but it works out with proxy..