为什么AndroidManifest权限没有在我的应用程序设置

为什么AndroidManifest权限没有在我的应用程序设置

本文介绍了为什么AndroidManifest权限没有在我的应用程序设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是完全新的Andr​​oid开发,但我已经与Java(和其他编程语言)工作过。

我使用的Andr​​oid Studio开发我的应用程序和访问位置信息(的)。据我所知,位置服务需要的 android.permission.ACCESS_COARSE_LOCATION 和/或 android.permission.ACCESS_FINE_LOCATION 权限,但在把它们添加到我的ApplicationManifest我的应用程序仍与一个SecurityException崩溃

  java.lang.SecurityException异常:客户必须有ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION的权限来执行任意位置操作。

我遇到的麻烦有几个人等情况,但这些一般都误配售的结果(java.lang.SecurityException:需要ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION许可),错误拼写(ACCESS_FINE_LOCATION AndroidManifest权限不被授予)或许可权字符串的不正确的大写。

下面是我的ApplicationManifest.xml

 <?XML版本=1.0编码=UTF-8&GT?;
<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    包=scd.tt>    <使用许可权的android:NAME =android.permission.ACCESS_COARSE_LOCATION/>
    <使用许可权的android:NAME =android.permission.ACCESS_FINE_LOCATION/>
    <使用许可权的android:NAME =android.permission.ACCESS_NETWORK_STATE/>
    <使用许可权的android:NAME =android.permission.INTERNET对/>    <用途-SDK
        安卓的minSdkVersion =14
        机器人:targetSdkVersion =23/>    <应用
        机器人:allowBackup =真
        机器人:图标=@的mipmap / ic_launcher_tt_v2
        机器人:标签=@字符串/ APP_NAME
        机器人:主题=@风格/ TT_Theme>
        <活动
            机器人:名字=。MainActivity
            机器人:主题=@风格/ TT_Theme.NoActionBar>
            &所述;意图滤光器>
                <作用机器人:名字=android.intent.action.MAIN/>
                <类机器人:名字=android.intent.category.LAUNCHER/>
            &所述; /意图滤光器>
        < /活性GT;
        <活动机器人:LoginActivityNAME =机器人:主题=@风格/ TT_Theme.NoActionBar/>
        <活动机器人:名字=。IndexActivity/>
    < /用途>< /清单>

我甚至试图删除ACCESS_NETWORK_STATE和网上看到的,如果在应用程序需要与HTTP服务器(它成功地执行)进行通信,这将导致其他SecurityExceptions它会试图获取位置信息之前。

这好像修改我做出的Andr​​oidManifest的权限,当我运行程序不被更新。我也试着清洁,并使用生成菜单重新生成应用程序。

更新:

下面是活动的核心;我已经删除了一些不相关的方法(如onCreateOptionsMenu()和onBack pressed(),因为他们什么都没有做的位置)

 包scd.tt;进口android.app.AlertDialog;
进口android.app.Fragment;
进口android.content.DialogInterface;
进口android.content.Intent;
进口android.content.Shared preferences;
进口android.location.Location;
进口android.os.Bundle;
进口android.support.v7.app.AppCompatActivity;
进口android.util.Log;
进口android.view.Menu;
进口android.view.MenuItem;进口com.google.android.gms.common.ConnectionResult;
进口com.google.android.gms.common.api.GoogleApiClient;
进口com.google.android.gms.location.LocationListener;
进口com.google.android.gms.location.LocationRequest;
进口com.google.android.gms.location.LocationServices;进口的java.util.Map;/ **
 *创建者利亚姆在2015年8月9日
 * /
公共类IndexActivity扩展AppCompatActivity实现GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener,LocationListener的{    私人GoogleApiClient mGoogleApiClient;
    私人LocationRequest mLocationRequest;
    私人位置mLastLocation;    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_index);
        如果(调试)Log.d(TAG的onCreate()呼吁:savedInstanceState是+(savedInstanceState == NULL空:不为空));        mLocationRequest =新LocationRequest();
        mLocationRequest.setInterval(10000);
        mLocationRequest.setFastestInterval(1000);
        mLocationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
        buildGoogleApiClient();        如果(findViewById(R.id.index_fragment_container)!= NULL){
            如果(savedInstanceState!= NULL)回报;            片段指数=新IndexFragment();
            index.setArguments(getIntent()getExtras());            。getFragmentManager()调用BeginTransaction()加(R.id.index_fragment_container,指数).commit();
        }
    }
    @覆盖
    保护无效调用onStart(){
        super.onStart();
        mGoogleApiClient.connect();
    }    @覆盖
    保护无效的onStop(){
        super.onStop();
        mGoogleApiClient.disconnect();
    }    @覆盖
    公共无效onConnected(束束){
        如果(调试)Log.d(TAGonConnected);
        mLastLocation = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient);
        startLocationUpdates();
    }    @覆盖
    公共无效onConnectionSuspended(int i)以{
        如果(调试)Log.d(TAG,连接暂停);
    }    @覆盖
    公共无效onConnectionFailed(ConnectionResult connectionResult){
        如果(调试)Log.d(TAG,连接失败);
    }    @覆盖
    公共无效onLocationChanged(地点){
        mLastLocation =位置;
    }    保护同步无效buildGoogleApiClient(){
        mGoogleApiClient =新GoogleApiClient.Builder(本)
            .addConnectionCallbacks(本)
            .addOnConnectionFailedListener(本)
            .addApi(LocationServices.API)
            。建立();
        如果(调试)Log.d(TAGbuildGoogleAPIClient());
    }    保护无效startLocationUpdates(){
        LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mLocationRequest,这一点);
    }
}


解决方案

检查这些3个环节。他们可能会帮助 -





作为评论引述你 -

这篇关于为什么AndroidManifest权限没有在我的应用程序设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 22:46