mou*_*907 36 permissions android
我正在开发一个应用程序,并在清单中我有:
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
Run Code Online (Sandbox Code Playgroud)
当我点击按钮执行此代码时:
Intent intentcall = new Intent();
intentcall.setAction(Intent.ACTION_CALL);
intentcall.setData(Uri.parse("tel:" + phonenumber)); // set the Uri
startActivity(intentcall);
Run Code Online (Sandbox Code Playgroud)
它可以在手机上正常运行,在平板电脑上会弹出一个显示屏,您可以在其中查看或向联系人添加号码.但是,如果我将权限保留在清单中,则不适用于市场中的平板电脑.如何保持代码行为并仍然在平板电脑和手机市场上展示?
Kev*_*oil 58
在AndroidManifest中,您需要:
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Run Code Online (Sandbox Code Playgroud)
该CALL_PHONE许可意味着需要电话,但如果你指定是不是你将不会被过滤.
val*_*dak 35
尝试使用Intent.ACTION_DIAL而不是Intent.ACTION_CALL.
例如:
try {
Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phone_number));
startActivity(intent);
} catch (Exception e) {
//TODO smth
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以从AndroidManifest.xml中完全删除这些标记:
<uses-permission android:name="android.permission.CALL_PHONE"/>
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Run Code Online (Sandbox Code Playgroud)
关于"使用功能"并且崩溃 - 您是否在实际拨打电话之前检查电话是否可用?当应用程序在平板电脑上时,您可能需要执行额外的步骤.您在清单中所说的只是该功能不是必需的.它可能依赖于你实际实现围绕它的逻辑.
| 归档时间: |
|
| 查看次数: |
46594 次 |
| 最近记录: |