Android权限请求代码问题

uee*_*een 1 android phone-call android-permissions

如何申请许可?我试过文档,但是常量的int请求代码MY_PERMISSIONS_REQUEST_CALL_PHONE似乎只是工作,还有其他什么要记住的向后兼容性?

ActivityCompat.requestPermissions(getApplicationContext(),
                            new String[]{Manifest.permission.READ_CONTACTS},
                            MY_PERMISSIONS_REQUEST_CALL_PHONE);
Run Code Online (Sandbox Code Playgroud)

如何声明MY_PERMISSIONS_REQUEST_CALL_PHONE常量int?

小智 6

public void makeCall(String s)
{
    Intent intent = new Intent(Intent.ACTION_CALL);
    intent.setData(Uri.parse("tel:" + s));
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED){

        requestForCallPermission();

    } else {
        startActivity(intent);

    }
}
public void requestForCallPermission()
{

    if (ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.CALL_PHONE))
    {
    }
    else {

        ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.CALL_PHONE},PERMISSION_REQUEST_CODE);
    }
}

@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
{
    switch (requestCode) {
        case PERMISSION_REQUEST_CODE:
            if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                makeCall("100");
            }
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

//现在调用方法makeCall("your_desire_phone_numder"); MakeCall函数( "100"); 链接了解更多详情