当前位置:   article > 正文

AndroidStudio设置允许APP获取定位权限

AndroidStudio设置允许APP获取定位权限

1. 在AndroidManifest.xml中声明权限

常用的定位权限有以下两种:

  1. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  2. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

2. 在代码中请求权限

在Android 6.0(API级别23)及以上版本,应用需要在运行时请求危险权限。以下是如何在代码中请求定位权限的示例:

(1) 检查并请求权限

在Activity中,添加检查权限和请求权限的代码:

  1. import android.Manifest;
  2. import android.content.pm.PackageManager;
  3. import android.os.Bundle;
  4. import androidx.annotation.NonNull;
  5. import androidx.appcompat.app.AppCompatActivity;
  6. import androidx.core.app.ActivityCompat;
  7. import androidx.core.content.ContextCompat;
  8. public class MainActivity extends AppCompatActivity {
  9. private static final int PERMISSION_REQUEST_LOCATION = 1;
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_main);
  14. // 检查定位权限
  15. if (ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
  16. != PackageManager.PERMISSION_GRANTED) {
  17. // 请求权限
  18. ActivityCompat.requestPermissions(this,
  19. new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
  20. PERMISSION_REQUEST_LOCATION);
  21. } else {
  22. // 权限已被授予,可以直接使用定位服务
  23. useLocationServices();
  24. }
  25. }
  26. @Override
  27. public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  28. super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  29. if (requestCode == PERMISSION_REQUEST_LOCATION) {
  30. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  31. // 权限被授予,可以使用定位服务
  32. useLocationServices();
  33. } else {
  34. // 权限被拒绝,显示提示信息
  35. showPermissionDeniedMessage();
  36. }
  37. }
  38. }
  39. private void useLocationServices() {
  40. // 使用定位服务的代码
  41. }
  42. private void showPermissionDeniedMessage() {
  43. // 提示用户权限被拒绝的信息 如
  44. new AlertDialog.Builder(this)
  45. .setTitle("Permission Denied")
  46. .setMessage("Location permission is necessary for this app to function.
  47. Please grant the permission in app settings.")
  48. .setPositiveButton("OK", null)
  49. .show();
  50. }
  51. }

4. 其他注意事项

  • 确保在AndroidManifest.xml中声明了服务依赖:比如高德
    1. <meta-data
    2. android:name="com.amap.api.v2.apikey"
    3. android:value="你的Key"></meta-data>
    4. <service android:name="com.amap.api.location.APSService" />

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/671654
推荐阅读
相关标签
  

闽ICP备14008679号