2015-11-18 9 views
13

मैं ACCESS_FINE_LOCATION तक पहुंचने का प्रयास कर रहा हूं और यदि इसे ACCESS_COARSE_LOCATION एक्सेस नहीं मिला है। इसलिए मैं उन 2 अनुमतियों का अनुरोध करता हूं, लेकिन वे मुझे एक ही संवाद देते हैं जो स्थान की अनुमति मांगते हैं। मैं जानता हूँ कि उन एक ही समूह में दोनों हैं, लेकिन गूगल का कहना है:मार्शमलो फाइन एंड कोर्स स्थान अनुमति

नोट: आपका ऐप अब भी स्पष्ट रूप से, हर अनुमति इसकी आवश्यकता अनुरोध करने के लिए भले ही उपयोगकर्ता पहले एक ही समूह में एक और की अनुमति दे दी है की जरूरत है। इसके अलावा, भविष्य में एंड्रॉइड रिलीज में समूहों में अनुमतियों का समूह बदल सकता है। आपका कोड इस धारणा पर भरोसा नहीं करना चाहिए कि विशेष अनुमतियां एक ही समूह में हैं या नहीं हैं।

इसका मतलब है कि मैं उन 2 अनुमतियों को एक सेकंड के भीतर पूछता हूं, जिसके परिणामस्वरूप एक पंक्ति में 2 संवाद होते हैं। यह मेरे लिए बहुत उपयोगकर्ता के अनुकूल नहीं लग रहा है। क्या कोई बेहतर तरीका है?

+1

मैं वर्तमान में खुद से यही पूछ रहा हूं। क्या 'ACCESS_FINE_LOCATION' में' ACCESS_COARSE_LOCATION' नहीं है? उदाहरण के लिए, यदि आपके पास एक अच्छी जगह हो सकती है, तो आपको अनुमानित स्थान प्राप्त करने में सक्षम होना चाहिए? – Nikola

+0

क्या आप स्थान प्राप्त करने या केवल जीपीएस का उपयोग करने के लिए नेटवर्क प्रदाता का उपयोग कर रहे हैं? – Rajesh

+0

इसे आज़माएं यह काम हो सकता है http://stackoverflow.com/a/41221852/5488468 –

उत्तर

24

आपको ACCESS_FINE_LOCATION अनुमति को परिभाषित करते समय ACCESS_COARSE_LOCATION अनुमति की आवश्यकता नहीं है।

एंड्रॉयड प्रलेखन से:

का निवेदन उपयोगकर्ता अनुमतियाँ

NETWORK_PROVIDER या GPS_PROVIDER से स्थान अपडेट प्राप्त करने के लिए, आप की घोषणा के द्वारा उपयोगकर्ता की अनुमति का अनुरोध करना होगा या तो ACCESS_COARSE_LOCATION या ACCESS_FINE_LOCATION अनुमति, क्रमशः, आपके एंड्रॉइड मेनिफेस्ट फ़ाइल में। उदाहरण के लिए:

<manifest> 
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
     ....... 
</manifest> 

इन अनुमतियों के बिना, आपके आवेदन कार्यावधि में असफल हो जायेगी जब स्थान अद्यतन का अनुरोध।

नोट: तुम दोनों NETWORK_PROVIDER और GPS_PROVIDER, तो उपयोग कर रहे हैं आप केवल ACCESS_FINE_LOCATION अनुमति का अनुरोध करने की जरूरत है, क्योंकि यह दोनों प्रदाताओं के लिए अनुमति भी शामिल है। ( ACCESS_COARSE_LOCATION के लिए अनुमति केवल NETWORK_PROVIDER के लिए अनुमति भी शामिल है।)

कृपया https://developer.android.com/guide/topics/location/strategies.html

0

देखो मैं इसे अनुमति रनटाइम और सबसे पहले प्रकट SDK संस्करण की जाँच करें और यदि देने के लिए एक ही problem.Try समाधान कर लिया है अपने संस्करण 6.0 से अधिक या 6.0 के बराबर है तो आपको अपनी अनुमति के लिए अनुमतियों की जांच करने की आवश्यकता है और केवल अनुमति स्थान में ठीक स्थान की अनुमति है, तो निश्चित रूप से यह काम करेगा।

यदि आप कोड में फंस गए हैं तो आप कोड मांग सकते हैं मैं आपको अपडेट कर दूंगा लेकिन पहले इन चरणों के माध्यम से जाऊंगा। यदि आपको अपना कार्य करने में सफलता मिली तो उसे रेट करें।

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