android - 使用 Intent 调用电话时需要权限吗?

标签 android permissions android-intent

在我的一个应用程序中,我使用以下代码调用电话:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(...)); 
startActivity(intent);

文档说我确实需要以下 list 许可才能这样做:

<uses-permission android:name="android.permission.CALL_PHONE" />

这真的需要吗?我不明白手机和相机功能之间的区别。使用手机 Intent 时,我确实需要许可,但我不需要相机 Intent 的许可:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
...
startActivityForResult(intent, 1);

是否有关于在 Intent 的帮助下触发和不需要许可的硬件功能的列表?

最佳答案

实际上,如果你只想打开特定电话号码的拨号器,而不是直接调用(需要用户确认),你可以在没有任何权限的情况下这样做:

Uri uri = Uri.parse("tel:" + PHONE_NUMBER);
Intent callIntent = new Intent(Intent.ACTION_DIAL, uri);
try {
    context.startActivity(callIntent);
} catch (ActivityNotFoundException activityNotFoundException) {
    // TODO: place code to handle users that have no call application installed, otherwise the app crashes
}

关于android - 使用 Intent 调用电话时需要权限吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8041347/

相关文章:

nginx突然开始向/var/lib/nginx抛出权限被拒绝

Android:将图像放入选定的ImageView中

android - 正在启动 Android 服务?

android - 连接管理器 setNetworkPreference()/getNetworkPreference() : How are they actually used?

android - 查找连接在 wifi 网络中的所有设备

java - 我是否需要删除以编程方式添加的 fragment

python - 使用 pathlib 的 rglob 处理缺少权限/组的情况

linux - SSH用户锁定到其主目录和一项服务

android - 在同一应用中打开 branch.io 链接

android - offsetLeftAndRight() 究竟做了什么?