Avn*_*ish 2 android android-manifest
我有一个应用程序将在具有电话功能但没有电话功能的设备上运行.以下是我的一些疑问:
1)我是否能够支持这两种类型的设备.2)对于具有电话功能的设备,我需要启用呼叫功能.和没有电话功能的设备我将禁用呼叫功能.
我不是很清楚<user-permissions>和<user-features>的概念,有没有办法指定手机<user-features>
eri*_*ion 13
如果您没有通过市场分发您的应用程序,并且如果您不关心遵循建议的做法,那么您应该只需要<uses-permission>应用程序使用的任何权限的标记.但是,要允许正确的设备通过市场访问应用程序,您将需要两个<uses-permission>和<uses-feature>标签.
<uses-permission>是要求您的应用程序采取某种行动的权限.准备安装应用程序时,用户可以查看请求的权限并决定是否继续安装.例如,如果应用程序尝试拨打电话而未声明"android.permission.CALL_PHONE"权限,则尝试将失败.请参阅此处获取基本平台权限列表.
<uses-permission>市场也使用隐式功能要求.如果您的应用程序使用需要电话硬件的权限,那么Market将假定需要电话硬件,并且该应用程序将无法用于缺少电话硬件的设备.
<uses-feature>可用于通知市场要么需要某个功能,要么该功能是可取的但不是必需的.标签将覆盖隐含的任何功能<uses-permission>.例如,如果您指定<uses-feature android:name="android.hardware.telephony" android:required="false" />,则无论请求的权限是什么,都不需要电话.
要查看如何创建市场过滤器<uses-permission>并进行<uses-feature>交互,请参阅此处.
要在运行时检查功能是否可用,看起来您可以使用PackageManager.hasSystemFeature():
Context context; // Some object, such as Activity, that extends Context
// ...
boolean hasTelephony = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY);
if (hasTelephony) {
// ...
}
else {
// ...
}
Run Code Online (Sandbox Code Playgroud)