java – 从拨号盘拨打号码返回警告:“呼叫需要权限,可能被用户拒绝”
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 从拨号盘拨打号码返回警告:“呼叫需要权限,可能被用户拒绝”,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2178字,纯文字阅读大概需要4分钟。
内容图文
![java – 从拨号盘拨打号码返回警告:“呼叫需要权限,可能被用户拒绝”](/upload/InfoBanner/zyjiaocheng/822/a109481419dc4d218b7bc09b093a0649.jpg)
当用户点击具有数字的TextView时,我试图基本上拨号:
number_title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:+"+user.getTelephone()));
activity.startActivity(callIntent);
//the above line returns the warning given below
}
});
我得到的警告:
Call requires permission which may be rejected by user. Code to
explicitly check to see if the permission is available
我知道如果以前没有授予权限,应用程序需要请求权限.我的问题是,如何在拨打电话前明确请求许可?
解决方法:
嗯,这是关于运行时权限的,所以只在manifest中声明它们才行不通.相反,您必须在开始呼叫之前检查权限.
这样的事情应该有效 – 如果用户之前没有授予许可(或者如果他撤销了用户),则只会要求用户获得许可:
private static final int MY_PERMISSIONS_REQUEST_CALL_PHONE = 1234;
public void yourfunction() {
number_title.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.CALL_PHONE)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CALL_PHONE},
MY_PERMISSIONS_REQUEST_CALL_PHONE);
} else {
executeCall();
}
}
});
}
private void executeCall() {
// start your call here
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:+"+user.getTelephone()));
activity.startActivity(callIntent);
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_CALL_PHONE: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay!
executeCall();
} else {
// permission denied, boo! Disable the
// functionality that depends on this permission.
}
return;
}
}
}
我主要从谷歌上面的代码:
http://developer.android.com/training/permissions/requesting.html
如果您想了解更多信息,请访问该链接.
编辑:
onRequestPermissionsResult将是您活动中的回调函数.您可能必须在那里处理呼叫.
内容总结
以上是互联网集市为您收集整理的java – 从拨号盘拨打号码返回警告:“呼叫需要权限,可能被用户拒绝”全部内容,希望文章能够帮你解决java – 从拨号盘拨打号码返回警告:“呼叫需要权限,可能被用户拒绝”所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。