2015-09-01 10 views
6

विंडोज यूनिवर्सल (विंडोज 10 ऐप्स) में जिओलोकेशन के लिए नया एपीआई उपयोगकर्ता के स्थान तक पहुंच की अनुमति देने का एक नया तरीका है।विंडोज यूनिवर्सल (यूडब्लूपी) जिओलोकेशन एपीआई अनुमतियां

विंडोज 10 में शुरू करना, उपयोगकर्ता के स्थान तक पहुंचने से पहले RequestAccessAsync विधि को कॉल करें। उस समय, आपका ऐप अग्रभूमि में होना चाहिए और UIA थ्रेड से RequestAccessAsync को कॉल किया जाना चाहिए।

मैं जियोलोकेशन के लिए कुछ बहुत ही सरल कोड चल रहा हूँ, यूआई धागे पर जैसा कि नीचे दिखाया, लेकिन मैं स्थान की अनुमति मांगता है हर बार और कोई शीघ्र स्थान अनुमतियों अनुमति देने के लिए "अस्वीकृत"। क्या कोई और इस में चला है? विंडोज 10 ऐप में भौगोलिक स्थान के लिए स्थान अनुमतियों को अनुमति देने के लिए मुझे प्रॉम्प्ट कैसे प्राप्त होगा?

जियोलोकेशन विधि

private async Task<ForecastRequest> GetPositionAsync() 
    { 
     try 
     { 

      // Request permission to access location 
      var accessStatus = await Geolocator.RequestAccessAsync(); 

      if (accessStatus == GeolocationAccessStatus.Allowed) 
      { 
       // Get cancellation token 
       _cts = new CancellationTokenSource(); 
       CancellationToken token = _cts.Token; 

       // If DesiredAccuracy or DesiredAccuracyInMeters are not set (or value is 0), DesiredAccuracy.Default is used. 
       Geolocator geolocator = new Geolocator { DesiredAccuracyInMeters = _desireAccuracyInMetersValue }; 

       // Carry out the operation 
       _pos = await geolocator.GetGeopositionAsync().AsTask(token); 

       return new ForecastRequest() 
       { 
        Lat = (float)_pos.Coordinate.Point.Position.Latitude, 
        Lon = (float)_pos.Coordinate.Point.Position.Longitude, 
        Unit = Common.Unit.us 
       }; 
      } 
      else 
       throw new Exception("Problem with location permissions or access"); 

     } 
     catch (TaskCanceledException tce) 
     { 
      throw new Exception("Task cancelled" + tce.Message); 
     } 
     finally 
     { 
      _cts = null; 
     } 
    } 

कहाँ यह कहा जाता है:

protected async override void OnNavigatedTo(NavigationEventArgs e) 
    { 
     base.OnNavigatedTo(e); 

     ForecastViewModel vm = await ForecastViewModel.BuildViewModelAsync(await GetPositionAsync()); 
     DataContext = vm.Forecast; 

     uxForecastList.Visibility = Visibility.Visible; 
    } 
+1

आप जोड़ दिया है "स्थान" (सभी क्षमताओं पर अधिक जानकारी के लिए नीचे स्क्रॉल करें): enter image description here

अधिक जानकारी का पता लगाएं ऐप में एक क्षमता के रूप में प्रकट? –

उत्तर

8

आप "स्थान" क्षमता सेट करना होगा। आप इसे एपमेनिफेस्ट में कर सकते हैं।

स्क्रीनशॉट तुम कहाँ क्षमता स्थापित करने के लिए लगता है में:

https://msdn.microsoft.com/en-us/library/windows/apps/windows.devices.geolocation.geolocator.aspx

+0

हाँ। रूकी गलती धन्यवाद। –

संबंधित मुद्दे