Windows Phone App Certification Requirements when using Location Services
Why do I even care? Two reasons:- It might push away users if they get the feeling my app wants to spy on them.
- Apps using Location Services have to follow certain rules. If they don't they can't enter the Store.
Fair enough, but I wasn't using any actual location data. Apart from that the requirement leaves some room for interpretation (emphasis mine):
§2.7 The following requirements apply to apps that receive the location of a user's mobile deviceWhat if I am using location-related classes but never use them? I have the feeling nobody won't care about that. So I decided to include a privacy policy (as demanded by §2.7.2) to be sure:
§2.7.2 The privacy policy of your app must inform users about how location data from the Location Service API is used and disclosed and the controls that users have over the use and sharing of location data. This can be hosted within or directly linked from the app. The privacy policy must be accessible from your app at any time.
How does Capability Detection by the Store Test Kit work?
Open the Store Test Kit via Project context menu. |
You can look up what APIs require which app capability in Rules.xml, a file included in the Windows Phone SDK. On my machine it can be found in C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\Marketplace.
Here is the relevant part of Rules.xml showing what needs ID_CAP_LOCATION:
<Capability ID="ID_CAP_LOCATION" Type="Security"> <Assembly Name="System.Device, Version=2.0.5.0, Culture=neutral, PublicKeyToken=24eec0d8c86cda1e"> <Namespace Name="System.Device.Location"> <Class Name="GeoCoordinateWatcher" /> <Class Name="GeoPosition" /> <Class Name="GeoPositionChangedEventArgs" /> <Class Name="GeoPositionStatusChangedEventArgs" /> </Namespace> </Assembly> <Assembly Name="Microsoft.Phone, Version=7.0.0.0, Culture=neutral, PublicKeyToken=24eec0d8c86cda1e"> <Namespace Name="Microsoft.Phone.Controls"> <Class Name="WebBrowser"> <Method Name="set_IsGeolocationEnabled"/> </Class> </Namespace> </Assembly> </Capability>
Why does the SharePoint SDK for Windows Phone use Location Services?
To determine where the SharePoint SDK uses location-related functionality I had a look into the assemblies included in the SDK - and found something in Microsoft.SharePoint.Phone.Application.Normally I use ILSpy to look at the implementation of framework assemblies, but ILSpy unfortunately doesn't support full text search as of this writing. So I tried the free JustDecompile by Telerik and this worked nicely.
Searching for GeoCoordinateWatcher lead to the class ModifyItemViewModelBase.
I could not find where OnGeolocationStatusChanged is used in any of the SDK assemblies. It's public and virtual so maybe it's just there to use for us. Seems the documentation is a bit scarce here as well.
Nice update and thanks for sharing more information on SharePoint.
ReplyDeleteSharePoint Development
I did not this all till today .Thanks for sharing . I will try myself. Would you please tell me regarding creating a solution in SharePoint Server for sending push notifications and develop a Windows Phone app for receiving the notifications. Apps for Android Tablet
Delete