java - Android Studio setmylocationenabled(true) throws SecurityException -


i've encountered problem. program throes securityexception, if declraed permissions. here mapsactivity class:

public class mapsactivity extends fragmentactivity implements onmapreadycallback {  private googlemap mmap;  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_maps);     // obtain supportmapfragment , notified when map ready used.     supportmapfragment mapfragment = (supportmapfragment) getsupportfragmentmanager()             .findfragmentbyid(r.id.map);     mapfragment.getmapasync(this);} public void onmapready(googlemap googlemap) {     try{     mmap = googlemap;      // add marker in sydney , move camera     latlng sydney = new latlng(-34, 151);     mmap.addmarker(new markeroptions().position(sydney).title("marker in sydney"));     mmap.movecamera(cameraupdatefactory.newlatlng(sydney));         mmap.setmylocationenabled(true);     mmap.getuisettings().setmylocationbuttonenabled(true);       // set map type  } 

here manifest:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="mazebug.danuleoshaleosha">  <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.write_external_storage" /> <uses-permission android:name="android.permission.access_network_state" /> <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="@mipmap/ic_launcher"     android:label="@string/app_name"     android:supportsrtl="true"     android:theme="@style/apptheme">     <activity android:name=".mainactivity">         <intent-filter>             <action android:name="android.intent.action.main" />              <category android:name="android.intent.category.launcher" />         </intent-filter>     </activity>     <activity android:name=".interface" />     <activity android:name=".main2activity" />     <activity android:name=".main22activity" />     <activity android:name=".sfr_table" />     <activity android:name=".sfrtable2" />     <activity android:name=".sfrtable3" />     <activity android:name=".sfrtable4" />     <activity android:name=".sfrtable5" />     <activity android:name=".sfrtable6" />     <activity android:name=".sfrtable7" />     <activity android:name=".mysfrs" />     <activity android:name=".search_bysitename" />     <activity android:name=".search_bydate" />     <activity android:name=".search_bylocation" />     <activity android:name=".found_1" />     <activity android:name=".found_2" />     <activity android:name=".found_3" />     <activity android:name=".edit_first" />     <activity android:name=".edit_1_2" />     <activity android:name=".edit_1_3" />     <activity android:name=".edit_1_4" />     <activity android:name=".edit_1_5" />     <activity android:name=".edit_1_6" />     <activity android:name=".edit_1_7" />     <activity android:name=".testing" />      <meta-data         android:name="com.google.android.gms.version"         android:value="@integer/google_play_services_version" />      <activity android:name=".main23activity" />     <!--          api key google maps-based apis defined string resource.          (see file "res/values/google_maps_api.xml").          note api key linked encryption key used sign apk.          need different api key each encryption key, including release key used          sign apk publishing.          can define keys debug , release targets in src/debug/ , src/release/.      -->     <meta-data         android:name="com.google.android.geo.api_key"         android:value="aizasya-z6nm3woxwp7dbzidz1_dssl8x81xttg" />      <activity         android:name=".mapsactivity"         android:label="@string/title_activity_maps"></activity> </application> 

here thrown exception

fatal exception: main                                                                              process: mazebug.danuleoshaleosha, pid: 13162                                                                       java.lang.securityexception: location requires permission access_fine_location or access_coarse_location                                                                           @ com.google.maps.api.android.lib6.e.ev.c(unknown source)                                                                           @ com.google.android.gms.maps.internal.j.ontransact(sourcefile:274)                                                                           @ android.os.binder.transact(binder.java:387)                                                                           @ com.google.android.gms.maps.internal.igooglemapdelegate$zza$zza.setmylocationenabled(unknown source)                                                                           @ com.google.android.gms.maps.googlemap.setmylocationenabled(unknown source)                                                                           @ mazebug.danuleoshaleosha.mapsactivity.onmapready(mapsactivity.java:51)                                                                           @ com.google.android.gms.maps.supportmapfragment$zza$1.zza(unknown source)                                                                           @ com.google.android.gms.maps.internal.zzo$zza.ontransact(unknown source)                                                                           @ android.os.binder.transact(binder.java:387)                                                                           @ com.google.android.gms.maps.internal.be.a(sourcefile:82)                                                                           @ com.google.maps.api.android.lib6.e.fb.run(unknown source)                                                                           @ android.os.handler.handlecallback(handler.java:739)                                                                           @ android.os.handler.dispatchmessage(handler.java:95)                                                                           @ android.os.looper.loop(looper.java:148)                                                                           @ android.app.activitythread.main(activitythread.java:5417)                                                                           @ java.lang.reflect.method.invoke(native method)                                                                           @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:726)                                                                           @ com.android.internal.os.zygoteinit.main(zygoteinit.java:616) 

i'm pretty confused, 'cause seems granted required permissions. please give me piece of advice. thanks!

try change code.

// add marker in sydney , move camera latlng sydney = new latlng(-34, 151); mmap.addmarker(new markeroptions().position(sydney).title("marker in sydney")); mmap.movecamera(cameraupdatefactory.newlatlng(sydney)); if (activitycompat.checkselfpermission(this, android.manifest.permission.access_fine_location) != packagemanager.permission_granted && activitycompat.checkselfpermission(this, android.manifest.permission.access_coarse_location) != packagemanager.permission_granted) return; mmap.setmylocationenabled(true); mmap.getuisettings().setmylocationbuttonenabled(true); 

Comments

Popular posts from this blog

routing - AngularJS State management ->load multiple states in one page -

python - GRASS parser() error -

Swift game error message -