相关疑难解决方法(0)

无法获得WRITE_SETTINGS权限

当我在Android M Preview 3上有一个23的目标API时,我似乎无法获得Manifest.permission.WRITE_SETTTINGS权限.

 requestPermissions(new String[]{Manifest.permission.WRITE_SETTINGS},
              101);
Run Code Online (Sandbox Code Playgroud)

请求权限不会显示我期望的对话框,但如果我未经此许可进行以下调用,

 RingtoneManager.setActualDefaultRingtoneUri(activity, RingtoneManager.TYPE_RINGTONE, ringUri);
Run Code Online (Sandbox Code Playgroud)

电话会议除外,因为我没有这个权限.

我不知道从哪里开始.23有新的铃声API吗?或者这个权限更改只是让任何非系统应用程序无法更改铃声?

android android-6.0-marshmallow

76
推荐指数
8
解决办法
7万
查看次数

ActivityCompat.requestPermissions未显示对话框

if (ContextCompat.checkSelfPermission(RegisterActivity.this,      Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_DENIED){
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.READ_PHONE_STATE}, REQUEST_READ_PHONE_STATE_PERMISSION);
Run Code Online (Sandbox Code Playgroud)

我正试图在nexus 5 api 23上使用这个功能,它只是没有向我显示它应该做的对话框,它只是没有做任何事情.什么可能导致问题?(此代码在java活动中)我尝试将最小api更改为23并使用requestPermissions()而不使用ActivityCompat但仍无效.

apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
    applicationId "com.example.idanayzen.photomap"
    minSdkVersion 23
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.android.support:design:23.1.1'
}
Run Code Online (Sandbox Code Playgroud)

和清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.idanayzen.photomap">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_SMS" />

<application …
Run Code Online (Sandbox Code Playgroud)

java permissions android

60
推荐指数
6
解决办法
8万
查看次数

ActivityCompat.requestPermissions不显示提示

我正在尝试请求ACCESS_FINE_LOCATION权限以获取用户的当前位置.

我的日志记录表明我的应用程序在查询时当前没有此权限ContextCompat.checkSelfPermission(),但是在ActivityCompat.requestPermissions()显示任何内容时都显示.

我的谷歌地图代码(实施OnMapReadyCallbackActivityCompat.OnRequestPermissionsResultCallback())是在FragmentActivity.

我已经设法让该requestPermissions()功能在应用程序中的其他活动中成功运行,它只是带有Google地图的那个.放置在onCreate()方法中Activity或在onMapReady()(需要去的地方)时它不起作用.

if(ContextCompat.checkSelfPermission(LocationActivity.this, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        Log.d(TAG, "not granted");
        final String[] permissions = new String[] {android.Manifest.permission.ACCESS_FINE_LOCATION};
    if(ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.ACCESS_FINE_LOCATION)) {
            Log.d(TAG, "rationale");
            // Explain to the user why permission is required, then request again
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("We need permissions")
                    .setCancelable(false)
                    .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            ActivityCompat.requestPermissions(LocationActivity.this, permissions, 1);
                    } …
Run Code Online (Sandbox Code Playgroud)

java android google-maps android-fragments android-permissions

7
推荐指数
1
解决办法
5639
查看次数