none
提交WP7的应用遇到的问题! RRS feed

  • 问题

  • 最近提交WP7的应用,被退回来两次。第一次是因为语言设置问题,第二次这个问题不知道要怎么解决。请大伙帮忙一下:

    2.7.2

    Requirements

    The following requirements apply to applications that receive the location of a user's mobile device: 2.7.2 The privacy policy of your application 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 application.

    Comments: STEPS TO REPRODUCE:
    1. Launch application.
    2. Navigate to "ATM Bank".
    3. Observe that it appears the application uses location services but does not include a privacy policy describing how the application uses the Location Service API and what control users have over the usage and sharing of information obtained through that usage. 

    2.7.3

    Requirements

    The following requirements apply to applications that receive the location of a user's mobile device: 2.7.3 Your application must provide in-application settings that allow the user to enable and disable your application's access to and use of location from the Location Service API.

    Expected Result

    Comments: STEPS TO REPRODUCE:
    1. Launch application.
    2. Navigate to settings page.
    3. Observe that it appears the application uses the Location Service API but no mechanism to disable/enable the application's access to and usage of the Location Service API is present.

    我已经程序里面已经提示了,如果用户没有打开定位服务,就一定要打开。按微软的要求,到底要什么样才符合他们的标准呢?

    这两点我真不知道要做到什么样的标准才能满足微软?


    2012年3月10日 13:27

答案

  • 你好,

    对于2.7.2的要求是你要有一个隐私权声明比如声明一下获取用户的地址信息的用途是什么,你会怎样保护用户地址隐私。

    2.7.3的要求是在你的应用程序中要提供给用户开启和关闭获取用户地址的功能。

    • 已标记为答案 Shi Ding 2012年3月20日 7:40
    2012年3月12日 2:29
  • 添加MessageBox提示的位置需要在用户启动程序后,在第一个页面加载完成之前提示。且用户在每次使用Location Service API进行任何操作时都要告知用户,但并不一定都要弹出个MessageBox给用户。

    比如说,有3个按钮button1, button2, button3,程序中它们都进行定位操作。“NotifyUserLocationAPI()”方法就是告知用户正在使用Location Service API 3个按钮都必须执行NotifyUserLocationAPI()方法,但为了避免每一次都弹出MessageBox,您可以在NotifyUserLocationAPI()方法中加入判断存放在IsolatedStorageSettings中的用户在每一次使用程序时对“开户定位”的选择结果,如果是“确定”则NotifyUserLocationAPI()不用弹出MessageBox,如果是“取消”则NotifyUserLocationAPI()必须弹出MessageBox


    Xuesong

    • 已标记为答案 Shi Ding 2012年3月20日 7:40
    2012年3月12日 13:37
    版主
  • 2.7.2的意思是当您使用 Location Service API做某些操作时必须让用户知道。

    2.7.3的意思是您的应用程序必须要有地方让用户能够对 Location Service功能进行开启和禁用的操作。

    对于2.7.2,我们需要做以下几点。

    1当用户第一次进入您的应用程序时,您可以弹出一个messagebox告诉用户您这个应用程序需要调用系统的Location Service API ,然后询问是否接受。您可以使用IsolatedStorage进行保存用户当前的选择,下次进入时就不需要判断。

    2当用户在点击某按钮后进行 Location的操作时,进行提示。

    如使用如下代码:

    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

            private void MapButtonClicked(object sender, RoutedEventArgs e)

            {

                   if (!settings.Contains("allowLocation") || !(bool.Parse(settings["allowLocation"].ToString())) )

                   {

                        MessageBoxResult mbr =  MessageBox.Show("Allow app to use your location?", "Location Services", MessageBoxButton.OKCancel);

                       //handle result

                        if (mbr == MessageBoxResult.OK)

                        {

                            settings["allowLocation"] = true;

    //handle result                 

                       }

                   }         

                    else{

    //handle result  

    }

            }

            private void LocationServiceSwitch_Checked(object sender, RoutedEventArgs e)

            {

                settings["allowLocation"] = true;

            }

            private void LocationServiceSwitch_Unchecked(object sender, RoutedEventArgs e)

            {

                settings["allowLocation"] = false;

            }


    Xuesong

    • 已标记为答案 Shi Ding 2012年3月20日 7:40
    2012年3月12日 13:41
    版主

全部回复

  • 你好,

    对于2.7.2的要求是你要有一个隐私权声明比如声明一下获取用户的地址信息的用途是什么,你会怎样保护用户地址隐私。

    2.7.3的要求是在你的应用程序中要提供给用户开启和关闭获取用户地址的功能。

    • 已标记为答案 Shi Ding 2012年3月20日 7:40
    2012年3月12日 2:29
  • 添加MessageBox提示的位置需要在用户启动程序后,在第一个页面加载完成之前提示。且用户在每次使用Location Service API进行任何操作时都要告知用户,但并不一定都要弹出个MessageBox给用户。

    比如说,有3个按钮button1, button2, button3,程序中它们都进行定位操作。“NotifyUserLocationAPI()”方法就是告知用户正在使用Location Service API 3个按钮都必须执行NotifyUserLocationAPI()方法,但为了避免每一次都弹出MessageBox,您可以在NotifyUserLocationAPI()方法中加入判断存放在IsolatedStorageSettings中的用户在每一次使用程序时对“开户定位”的选择结果,如果是“确定”则NotifyUserLocationAPI()不用弹出MessageBox,如果是“取消”则NotifyUserLocationAPI()必须弹出MessageBox


    Xuesong

    • 已标记为答案 Shi Ding 2012年3月20日 7:40
    2012年3月12日 13:37
    版主
  • 2.7.2的意思是当您使用 Location Service API做某些操作时必须让用户知道。

    2.7.3的意思是您的应用程序必须要有地方让用户能够对 Location Service功能进行开启和禁用的操作。

    对于2.7.2,我们需要做以下几点。

    1当用户第一次进入您的应用程序时,您可以弹出一个messagebox告诉用户您这个应用程序需要调用系统的Location Service API ,然后询问是否接受。您可以使用IsolatedStorage进行保存用户当前的选择,下次进入时就不需要判断。

    2当用户在点击某按钮后进行 Location的操作时,进行提示。

    如使用如下代码:

    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

            private void MapButtonClicked(object sender, RoutedEventArgs e)

            {

                   if (!settings.Contains("allowLocation") || !(bool.Parse(settings["allowLocation"].ToString())) )

                   {

                        MessageBoxResult mbr =  MessageBox.Show("Allow app to use your location?", "Location Services", MessageBoxButton.OKCancel);

                       //handle result

                        if (mbr == MessageBoxResult.OK)

                        {

                            settings["allowLocation"] = true;

    //handle result                 

                       }

                   }         

                    else{

    //handle result  

    }

            }

            private void LocationServiceSwitch_Checked(object sender, RoutedEventArgs e)

            {

                settings["allowLocation"] = true;

            }

            private void LocationServiceSwitch_Unchecked(object sender, RoutedEventArgs e)

            {

                settings["allowLocation"] = false;

            }


    Xuesong

    • 已标记为答案 Shi Ding 2012年3月20日 7:40
    2012年3月12日 13:41
    版主
  • 2.7.2的意思是当您使用 Location Service API做某些操作时必须让用户知道。

    2.7.3的意思是您的应用程序必须要有地方让用户能够对 Location Service功能进行开启和禁用的操作。

    对于2.7.2,我们需要做以下几点。

    1当用户第一次进入您的应用程序时,您可以弹出一个messagebox告诉用户您这个应用程序需要调用系统的Location Service API ,然后询问是否接受。您可以使用IsolatedStorage进行保存用户当前的选择,下次进入时就不需要判断。

    2当用户在点击某按钮后进行 Location的操作时,进行提示。

    如使用如下代码:

    IsolatedStorageSettings settings = IsolatedStorageSettings.ApplicationSettings;

            private void MapButtonClicked(object sender, RoutedEventArgs e)

            {

                   if (!settings.Contains("allowLocation") || !(bool.Parse(settings["allowLocation"].ToString())) )

                   {

                        MessageBoxResult mbr =  MessageBox.Show("Allow app to use your location?", "Location Services", MessageBoxButton.OKCancel);

                       //handle result

                        if (mbr == MessageBoxResult.OK)

                        {

                            settings["allowLocation"] = true;

    //handle result                 

                       }

                   }         

                    else{

    //handle result  

    }

            }

            private void LocationServiceSwitch_Checked(object sender, RoutedEventArgs e)

            {

                settings["allowLocation"] = true;

            }

            private void LocationServiceSwitch_Unchecked(object sender, RoutedEventArgs e)

            {

                settings["allowLocation"] = false;

            }


    Xuesong


    请问,上面的代码如何可以使系统的服务打开(不用用户自己去打开设置页面去打开定位服务,而是由我们自己写代码实现开启或是关闭定位服务)

    Software originates from life

    2012年9月12日 1:55