使用Intent拨打电话时所需的权限?

Har*_*elm 8 permissions android android-intent

在我的某个应用中,我使用以下代码发出电话:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(...)); 
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

文档说我确实需要以下Manifest权限:

<uses-permission android:name="android.permission.CALL_PHONE" />
Run Code Online (Sandbox Code Playgroud)

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

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
...
startActivityForResult(intent, 1);
Run Code Online (Sandbox Code Playgroud)

是否存在硬件功能列表,如果在意图的帮助下触发需要许可,哪些不需要?

and*_*per 21

实际上,如果您只想打开具有特定电话号码的拨号器,而无需直接呼叫(需要用户确认),您可以在未经许可的情况下进行:

startActivity( new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + PhoneNumber)));
Run Code Online (Sandbox Code Playgroud)


Com*_*are 12

这真的需要吗?

是.

我不明白手机和相机功能之间的区别.

打电话可能会花费人们的钱.因此,如果您直接拨打电话(而不是ACTION_DIAL将号码放入拨号器),Android希望用户提前同意以允许此操作.

用相机拍照通常不会直接花费用户任何钱.

是否存在硬件功能列表,如果在意图的帮助下触发需要许可,哪些不需要?

并不是的.