आईओएस 10 अब मीडिया लाइब्रेरी तक पहुंचने के लिए उपयोगकर्ता की अनुमति की आवश्यकता है। हम जांच करते हैं कि हमारे पास इसका उपयोग करने से पहले मीडिया लाइब्रेरी तक पहुंच है या नहीं, और यदि हम नहीं तो उपयोगकर्ता से प्राधिकरण का अनुरोध करने के लिए [MPMediaLibrary requestAuthorization:
का उपयोग करें।मीडिया लाइब्रेरी के लिए प्रमाणीकरण अनुरोध
मुझे उम्मीद है कि यह मीडिया लाइब्रेरी तक पहुंचने के लिए एक ही पॉपअप अनुरोध दिखाने की उम्मीद है जिसे हम ऐप स्टार्टअप पर प्राप्त करते हैं, लेकिन कुछ भी नहीं होता है। यह पहले से MPMediaLibraryAuthorizationStatusDenied
स्थिति के साथ वापस आ रहा है।
docs for requestAuthorization इस समय अपूर्ण हैं, इसलिए मैं यह नहीं बता सकता कि मैं इसे गलत तरीके से उपयोग कर रहा हूं, या कुछ और गलत है।
if (MPMediaLibrary.authorizationStatus == MPMediaLibraryAuthorizationStatusAuthorized)
{
// we already have access to the Media Library - use it here...
}
else
{
// We expect this to show a popup so the user can grant access, but does not work
[MPMediaLibrary requestAuthorization:^(MPMediaLibraryAuthorizationStatus authorizationStatus)
{
if (authorizationStatus == MPMediaLibraryAuthorizationStatusAuthorized)
{
// success: the user authorized - use it here...
}
else
{
// user did not authorize - tell user why here...
}
}];
}
अद्यतन
जाहिर है वहाँ फिर से प्रकट होना (नीचे टिप्पणी देखें) मूल संवाद पैदा करने के लिए कोई रास्ता नहीं है। अब मैं कम से कम सेटिंग्स में सही जगह पर ले जाने के लिए इस कोड का उपयोग कर रहा हूं ताकि उपयोगकर्ता परिवर्तन कर सके। (IOS8 के लिए और परे)
NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[[UIApplication sharedApplication] openURL:url];
अस्वीकृत सामान्यतः "निर्धारित नहीं" से अलग होता है जिसे आपको प्राप्त करना चाहिए। क्या आपने पहली बार एप्लिकेशन चलाने से इनकार नहीं किया था? यदि यह मामला है (या तो सेटिंग में या फिर ऐप को पुनर्स्थापित करने के बाद इसे हटाकर) इसे रीसेट करना होगा)? – jcaron
हां, हमने शुरुआत से इनकार कर दिया जब प्रारंभिक संवाद प्रस्तुत किया गया था जब ऐप शुरू में शुरू हुआ था। हालांकि, 'MPMediaLibrary अनुरोध प्राधिकरण' कॉल का बिंदु क्या है यदि यह इस प्रॉम्प्ट को फिर से प्रकट नहीं करता है। अन्यथा यह केवल 'MPMediaLibrary.authorizationStatus' करने और मौजूदा स्थिति को रिपोर्ट करने जैसा ही है। यही वह नहीं है जो हमें चाहिए। –
सभी आईओएस प्राधिकरण संवाद मुझे काम के बारे में पता है: वे एक बार पूछते हैं, और याद रखें कि उपयोगकर्ता ने क्या चुना है। जब तक यह अनइंस्टॉल नहीं किया जाता है तब तक उन्हें किसी दिए गए ऐप के लिए कभी नहीं दिखाया जाता है। उसके बाद चयन को बदलने का एकमात्र तरीका सेटिंग्स ऐप के माध्यम से है। कॉल का बिंदु पहली बार संवाद दिखाना है। – jcaron