应用程序使用的Windows Phone电话功能

时间:2011-07-06 13:59:03

标签: silverlight windows-phone-7

我有一个类库,它是一组用于开发Windows Phone 7应用程序的帮助程序类。

我在此库中拥有的核心助手类之一负责提供位置服务功能,因此它使用ILocationWatcher和对System.Device的引用。

现在问题是,即使我在市场上提交应用程序后不使用此帮助程序类(即,将永远不会启动LocationWatcher),它会将“位置服务”显示为我的应用程序正在使用的功能之一。

我相信市场检测到这一点的方式,或多或少地分析了项目中的所有代码和库。

我们怎么能以某种方式覆盖这种行为?

3 个答案:

答案 0 :(得分:5)

当您的xap提交到市场时,使用静态分析检测功能。

如果您引用程序集System.Device并使用名称空间System.Device.Location,则会报告位置功能。<​​/ p>

分析XAP中的所有程序集。 甚至是你从第三方获得的。

如果您不希望在市场上报告该功能,请删除触发其检测的参考 您可能需要考虑如何构建共享/公共库/代码。

答案 1 :(得分:1)

您可以使用free capability detection tool supplied with the second Mango SDK beta检查已使用的功能。如果您使用位置而未在WMAppManifest.xml中定义它,则用户将收到“拒绝访问”消息,您的应用将抛出UnauthorizedAccessException。 Afaik没有办法绕过这种行为。它是一种安全功能,可在用户安装应用程序之前对其进行警告,以便他们可以在市场上查看应用程序将要使用的功能。

答案 2 :(得分:-1)

我不相信它正在分析代码。而是使用清单的功能部分来确定需要什么。您可以在此处详细了解该部分:

http://msdn.microsoft.com/en-us/library/ff769509(v=vs.92).aspx#BKMK_Capabilities

应用程序的清单是否包含ID_CAP_LOCATION?如果确实如此,并且您没有使用它 - 它可以安全地删除。