【问题标题】:Granting Run time permissions marshmallow and above to write system settings授予运行时权限 marshmallow 及以上权限以写入系统设置
【发布时间】:2017-11-22 05:46:46
【问题描述】:

我正在 Android 上制作节电应用程序。我已经包含了从应用程序设置亮度、从应用程序设置屏幕超时、启用/禁用同步等功能,这些功能我必须编写系统设置。 我在清单中使用了WRITE_SETTINGS,WRITE_SECURE_SETTINGS,主要活动的代码写在下面。我正在使用库来授予权限。 问题是,如果我在清单中添加任何其他权限,它会成功授予,但它会自动拒绝写入系统应用程序权限。我希望写入权限能够成功更改 Marshmallow 及更高版本中的屏幕亮度、屏幕超时和其他功能等。 如果有人知道该怎么做,请帮助我。 基本上我想要这些权限,这些权限在下面的链接中说明 Android launch app show "Can modify system settings" dialog

import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import com.karan.churi.PermissionManager.PermissionManager;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    PermissionManager permissionManager;
    TextView txtGranted, txtDenied;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtGranted = (TextView) findViewById(R.id.Granted);
        txtDenied = (TextView) findViewById(R.id.Denied);
        permissionManager = new PermissionManager() {};
        permissionManager.checkAndRequestPermissions(this);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        permissionManager.checkResult(requestCode,permissions,grantResults);
        ArrayList<String> granted=permissionManager.getStatus().get(0).granted;
        ArrayList<String> denied=permissionManager.getStatus().get(0).denied;
        for(String item:granted){
            txtGranted.setText(txtGranted.getText()+"\n"+item);
        }
        for(String item:denied){
            txtDenied.setText(txtDenied.getText()+"\n"+item);
        }
    }
}

【问题讨论】:

    标签: android android-6.0-marshmallow user-permissions runtime-permissions


    【解决方案1】:

    除非您的Application 使用与系统映像相同的keystore 签名,否则您无法覆盖系统功能(或)获取系统级访问权限。为此,您需要拥有自己的 SDK,以便您可以覆盖系统设置。

    【讨论】:

    猜你喜欢
    • 2018-05-08
    • 2022-08-22
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2017-05-30
    • 2016-09-09
    • 1970-01-01
    • 2015-11-26
    相关资源
    最近更新 更多