在我的某个应用中,我使用以下代码拨打电话:
Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse(...));
startActivity(intent);
文档说我确实需要以下Manifest权限:
<uses-permission android:name="android.permission.CALL_PHONE" />
这真的需要吗?我不明白手机和相机功能之间的区别。使用手机时,我确实需要许可,但我不需要相机意图的许可:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
...
startActivityForResult(intent, 1);
是否有关于硬件功能的列表,如果在意图的帮助下触发了需要许可,哪些不需要?
答案 0 :(得分:21)
实际上,如果您只想打开具有特定电话号码的拨号器而无需直接呼叫(需要用户确认),您可以在未经许可的情况下进行:
startActivity( new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + PhoneNumber)));
答案 1 :(得分:12)
这真的需要吗?
是
我不明白手机和相机功能之间的区别。
电话可能会花费人们的钱。因此,如果您直接拨打电话(而不是ACTION_DIAL
只是将号码放入拨号器中),Android希望用户提前同意以允许此操作。
使用相机拍照通常不会直接使用户花钱。
是否有关于硬件功能的列表,如果在意图的帮助下触发了需要许可,哪些不需要?
不是。
答案 2 :(得分:1)
当您向相机发出请求时,它只会打开一个需要用户互动的应用才能执行任何操作。
电话打开已经输入电话号码的应用程序,因此您只需按一个按钮即可。
你不小心打电话给别人的风险比你不小心拍照的风险要大得多(如果不小心拍的话,你可以删除。)