默认情况下,windows phone应用申明了全部功能,包括:

ID_CAP_GAMERSERVICES访问Xbox Live玩家服务

ID_CAP_IDENTITY_DEVICE访问IMEI,设备电话号码

ID_CAP_IDENTITY_USER访问用户信息

ID_CAP_LOCATION访问用户的位置

ID_CAP_MEDIALIB访问媒体库

ID_CAP_MICROPHONE访问设备麦克风

ID_CAP_NETWORKING访问网络服务,只有当用户为漫游付费才会开启

ID_CAP_PHONEDIALER访问拨打电话的功能

ID_CAP_PUSH_NOTIFICATION访问从互联网服务推送的通知

ID_CAP_SENSORS访问设备传感器

ID_CAP_WEBBROWSERCOMPONENT访问浏览器组件

这样让应用进入市场是不理想的,因此需要删除没有用到的功能申明。这里用到了Windows Phone SDK自带的检测工具CapabilityDetection.exe,通常在“%ProgramFiles (x86)%\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect”文件夹下。

使用方式:使用命令行运行:开始 cmd,进入CapabilityDetection.exe所在目录。

格式:CapabilityDetection.exe Rules.xml PathtoXAPDLLFile

这里需要申明一点PathtoXAPDLLFile并非项目生成的xap。而是项目在打包成xap之前的dll项目,通常在windows phone项目的Bin\Release目录或者是Bing\Debug目录。如图

image

这时候会列出该项目所使用到的功能清单。

最后打开WMAppManifest.xml删除没有用到的项目清单即可。