Windows Phone Phone Возможности, используемые Приложением - PullRequest
2 голосов
/ 06 июля 2011

У меня есть библиотека классов, которая представляет собой набор вспомогательных классов для разработки приложений для Windows Phone 7.

Один из основных вспомогательных классов, которые есть в этой библиотеке, отвечает за предоставление функций службы определения местоположения, поэтому он использует ILocationWatcher и ссылки на System.Device.

Теперь проблема в том, что даже если я не использую этот вспомогательный класс (то есть LocationWatcher никогда не будет запущен) после отправки приложения в Marketplace, он показывает «Службы определения местоположения» как одну из возможностей, которые использует мое приложение.

Я полагаю, что рынок обнаруживает это, более или менее анализируя все коды и библиотеки в проекте.

Как мы можем как-то переопределить это поведение?

Ответы [ 3 ]

5 голосов
/ 06 июля 2011

Capabilite обнаруживаются с помощью статического анализа, когда ваш xap отправляется на рынок.

О местоположении можно узнать, если вы ссылаетесь на сборку System.Device и используете пространство имен System.Device.Location.

* 1006.* Все сборки в вашем XAP анализируются. Даже те, которые вы получаете от третьих лиц.

Если вы не хотите, чтобы о возможности сообщали на рынке, удалите ссылки, которые инициируют ее обнаружение.
Возможно, вы захотитеподумайте, как вы структурируете ваши общие / общие библиотеки / код с учетом этого.

1 голос
/ 06 июля 2011

Вы можете проверить свои использованные возможности с помощью бесплатного инструмента обнаружения возможностей , поставляемого со второй бета-версией Mango SDK . Если вы используете местоположение без определения его в WMAppManifest.xml, пользователь получит сообщение «Отказано в доступе», и ваше приложение выдаст исключение UnauthorizedAccessException . Афайк, нет никакого возможного способа обойти это поведение. Он предназначен для обеспечения безопасности, чтобы предупредить пользователей перед установкой приложения, чтобы они могли проверить на рынке, какие функции будет использовать приложение.

0 голосов
/ 06 июля 2011

Я не верю, что это анализ кода. Скорее он использует раздел Возможности манифеста, чтобы определить, что требуется. Вы можете узнать больше об этом разделе здесь:

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

Включает ли манифест приложения ID_CAP_LOCATION? Если это так, а вы его не используете - его можно безопасно удалить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...