授予 运行 时间权限 marshmallow 及以上以写入系统设置
Granting Run time permissions marshmallow and above to write system settings
我正在 Android 上制作节电应用程序。我已经包含了从应用程序设置亮度、从应用程序设置屏幕超时、enable/disable 同步等功能。对于这些功能,我必须编写系统设置。
我在清单中使用了 WRITE_SETTINGS
、WRITE_SECURE_SETTINGS
,主要 activity 的代码写在下面。我正在使用一个库来授予权限。
问题是,如果我在清单中添加任何其他权限,它会被成功授予,但它会拒绝写入系统应用程序权限 automatically.I 想要写入权限才能成功更改 Marshmallow 中的屏幕亮度、屏幕超时和其他功能等以上。
如果有人知道该怎么做,请帮助我。
基本上我想要这些权限,这些权限在下面的 link 中说明
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);
}
}
}
您无法覆盖系统功能(或)获取系统级访问权限,除非并且直到您的 Application
已使用与系统映像相同的 keystore
进行签名。为此,您需要拥有自己的 SDK,以便您可以覆盖系统设置。
我正在 Android 上制作节电应用程序。我已经包含了从应用程序设置亮度、从应用程序设置屏幕超时、enable/disable 同步等功能。对于这些功能,我必须编写系统设置。
我在清单中使用了 WRITE_SETTINGS
、WRITE_SECURE_SETTINGS
,主要 activity 的代码写在下面。我正在使用一个库来授予权限。
问题是,如果我在清单中添加任何其他权限,它会被成功授予,但它会拒绝写入系统应用程序权限 automatically.I 想要写入权限才能成功更改 Marshmallow 中的屏幕亮度、屏幕超时和其他功能等以上。
如果有人知道该怎么做,请帮助我。
基本上我想要这些权限,这些权限在下面的 link 中说明
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);
}
}
}
您无法覆盖系统功能(或)获取系统级访问权限,除非并且直到您的 Application
已使用与系统映像相同的 keystore
进行签名。为此,您需要拥有自己的 SDK,以便您可以覆盖系统设置。