代码示例
教程分享

Android获取直接拨打电话运行时权限

自从Android6.0后,谷歌增加了许多权限验证,以前只需要权限声明的功能再现在要实现就需要在你执行功能时实时获取权限,即运行时权限runtime permission,下面是我用在程序中获取直接拨打电话的权限的代码,来自网友,亲测好用。

Android获取直接拨打电话运行时权限

Android获取直接拨打电话运行时权限

实现代码如下:

/**
 * 申请权限
 */
private void requestPermission()
{
    //判断Android版本是否大于23
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
    {
        int checkCallPhonePermission = ContextCompat.checkSelfPermission(SearchActivity.this, Manifest.permission.CALL_PHONE);

        if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED)
        {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CALL_PHONE},
                    RequestPermissionType.REQUEST_CODE_ASK_CALL_PHONE);
            return;
        }
        else
        {
            callPhone(phone);
        }
    }
    else
    {
        callPhone(phone);
    }
}

/**
 * 注册权限申请回调
 * @param requestCode 申请码
 * @param permissions 申请的权限
 * @param grantResults 结果
 */
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults)
{
    switch (requestCode)
    {
        case  RequestPermissionType.REQUEST_CODE_ASK_CALL_PHONE:
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
            {
                callPhone(phone);
            }
            else
            {
                // Permission Denied
                Toast.makeText(SearchActivity.this, "CALL_PHONE Denied", Toast.LENGTH_SHORT).show();
            }
            break;
        default:
            super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}

/**
 * 拨号方法
 */
private void callPhone(String phone)
{
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_CALL);
    intent.setData(Uri.parse("tel:"+phone));
    startActivity(intent);
}

在需要获取权限时执行requestPermission();申请权限即可,代码会自动判断是否已经获得授权。

 

赞(0) 打赏
未经允许不得转载:代码狗 » Android获取直接拨打电话运行时权限
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

高性能服务器,就选阿里云/腾讯云

阿里云订购腾讯云订购

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏