2016-02-29 11 views
13

इंस्टॉल करते समय अनुमतियों के लिए नहीं पूछ रहा है, मैं अपने विश्वविद्यालय के आईटी विभाग में काम करता हूं और हम ऐसे ऐप पर काम करते हैं जो एडुरोम वाईफाई (शायद आपने इसके बारे में सुना है) के लिए सही सेटअप स्थापित किया है।एंड्रॉइड ऐप

हालांकि मुझे एंड्रॉइड 6.0 के साथ अपने स्वयं के एलजी जी 4 पर इसे चलाने में समस्या है। संकलित * .apk इंस्टॉल करते समय यह किसी भी अनुमति के लिए नहीं पूछता है हालांकि वे AndroidManifest.xml में सेट हैं। यह पिछले सभी एंड्रॉइड संस्करणों पर काम कर रहा था।

अब रनटाइम पर अनुमतियों के लिए पूछना अनिवार्य है?

+0

आपके ऐप का 'targetSdkVersion' क्या है? – CommonsWare

+0

मैंने सोचा कि यह केवल तभी होगा यदि आपकी सुरक्षा सेटिंग्स "अज्ञात स्रोत = झूठी" पर सेट की गई हों। किसी भी समय जब आप किसी ज्ञात स्रोत से कुछ इंस्टॉल करते हैं, जैसे Play, आप उसे नहीं देख पाएंगे। – durbnpoisn

+0

मुझे अभी एहसास हुआ कि एंड्रॉइड Play Store के बजाय एपीके से इंस्टॉल करते समय वाई-फाई राज्य अनुमति मांगता नहीं है। आप यहां अंतर देख सकते हैं: http://imgur.com/a/rg2IV –

उत्तर

28

यदि आपका लक्ष्य एसडीके संस्करण 23 है तो आपको रन टाइम पर "खतरनाक" अनुमतियों के लिए पूछना होगा।

यदि ऐसा है तो आपको यह देखने में सक्षम होना चाहिए कि Settings > Apps > "Your app" > Permissions पर कोई अनुमति नहीं दी गई है।

यदि आप अभी तक नई प्रणाली को लागू नहीं करना चाहते हैं तो पुरानी अनुमति प्रणाली प्राप्त करने के लिए आप अपने लक्ष्य एसडीके संस्करण को 22 तक घटा सकते हैं। हालांकि आप अभी भी एसडीके संस्करण 23 के साथ संकलित कर सकते हैं।

अधिक जानकारी के लिए the documentation देखें।

+0

सलाह के लिए धन्यवाद, हालांकि हम केवल ACCESS_WIFI_STATE और CHANGE_WIFI_STATE का उपयोग करते हैं, जो खतरनाक अनुमतियों के रूप में सूचीबद्ध नहीं हैं। लेकिन मैं लक्षित एसडीके को 22 पर सेट करने की कोशिश करूंगा। –

1

यदि आप अनुमति रनटाइम खोजना चाहते हैं तो आपको अपने ऐप में विशेष अनुरोध लिखना चाहिए। कुछ ऐसा:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
     createPermissions(); 
} 
public void createPermissions(){ 
    String permission = Manifest.permission.READ_SMS; 
    if (ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED){  
     if(!ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), permission)){ 
       requestPermissions(new String[]{permission}), 
         SMS_PERMISSION); 
     } 
    } 
}