2013-06-03 8 views
12

उपयोगकर्ता को अपना नाम इनपुट करने के लिए कहने के बाहर, क्या डिवाइस से इसे निकालने का कोई तरीका है?आईफोन उपयोगकर्ता का नाम पाने के लिए कोई तरीका?

मैं इस पुस्तकालय है, जो [UIDevice currentDevice] name] से नाम निकालने के लिए प्रयास करता है की कोशिश की, लेकिन वह स्थितियों का एक बहुत में काम नहीं करता है:

https://github.com/tiboll/TLLNameFromDevice

उपयोगकर्ता की फोनबुक या कहीं और में वर्तमान नाम है कि हमारे पास आईओएस 6 तक पहुंच है?

+1

पर कोड पर आधारित था मैं इसे iOS पर संभव है नहीं लगता है: स्विफ्ट में एक स्निपेट (अनदेखी त्रुटियों) के बाद http://stackoverflow.com/a/ 12715598/1813169 – MTCoster

उत्तर

10

ठीक है आप एड्रेसबुक में सभी संपर्कों के माध्यम से जा सकते हैं और देख सकते हैं कि उनमें से कोई भी मालिक ध्वज के साथ चिह्नित है या नहीं।

बस ध्यान रखें कि ऐसा करने से "यह ऐप पता पुस्तिका तक पहुंच चाहता है" संदेश पॉपअप करेगा। इसके अलावा ऐप्पल इस तरह की चीजों पर बहुत उत्सुक नहीं है। ऐप समीक्षा मार्गदर्शिका में यह निर्दिष्ट किया गया है कि कोई ऐप उपयोगकर्ता की अनुमति के बिना व्यक्तिगत जानकारी का उपयोग नहीं कर सकता है।

+11

अंततः एक उत्तर जो आलसी "यह असंभव है" गैर-उत्तर नहीं देता है ... (+1) –

+3

यह मालिक ध्वज कहां है? – devios1

+1

@ रेकोनिस, कृपया इस 'मालिक' ध्वज पर विस्तृत करें। कुछ उदाहरण कोड बहुत उपयोगी होगा। धन्यवाद। – Luke

2

आप उपयोग कर सकते हैं:

NSLog(@"user == %@",[[[NSHost currentHost] names] objectAtIndex:0]); 

मैं संकलक चेतावनी तरीकों +currentHost और -names नहीं पाए गए प्राप्त किया था। चेतावनी को देखते हुए, मुझे यह सुनिश्चित नहीं है कि यह सार्वजनिक रूप से सुलभ एपीआई के रूप में उपलब्ध (या नहीं) को उपलब्ध कराने के लिए ऐप्पल के इरादे से निश्चित नहीं है, हालांकि, सबकुछ अतिरिक्त हेडर फाइलों को जोड़ने या अतिरिक्त libraries/frameworks में जोड़ने की आवश्यकता के बिना अपेक्षित काम करने लग रहा था। ।

संपादित करें 1: इस Link

संपादित 2 पर एक नज़र हो सकता है: आप Facebook के साथ आप आसानी से उपयोगकर्ता की जानकारी प्राप्त कर सकते हैं अपने अनुप्रयोग को एकीकृत किया है, तो यह देखने Facebook Fetch User Data

6

आप Square's solution इस्तेमाल कर सकते हैं:

  1. Get the device's name (उदाहरण के लिए "जॉन स्मिथ का आईफोन")।
  2. फोन पर संपर्कों के माध्यम से जाएं और "जॉन स्मिथ" नामक संपर्क की तलाश करें।

JBDeviceOwner और ABGetMe दोनों आपके लिए यह करेंगे।

1

आप CloudKit का उपयोग कर सकते हैं।

let container = CKContainer.defaultContainer() 

container.fetchUserRecordIDWithCompletionHandler(
    { 
     (recordID, error) in 

     container.requestApplicationPermission(
      .PermissionUserDiscoverability, 
      { 
       (status, error2) in 

       if (status == CKApplicationPermissionStatus.Granted) 
       { 
        container.discoverUserInfoWithUserRecordID(
         recordID, 
         completionHandler: 
         { 
          (info, error3) in 

          println("\(info.firstName) \(info.lastName)") 
         } 
        ) 
       } 
      } 
     ) 
    } 
) 

ऊपर कोड http://www.snip2code.com/Snippet/109633/CloudKit-User-Info

+0

यह ध्यान दिया जाना चाहिए कि, यदि यह अनुमति पहले से ही नहीं दी गई है, तो यह उपयोगकर्ता को उसी ऐप के अन्य उपयोगकर्ताओं द्वारा खोजने योग्य होने की अनुमति देने के लिए संकेत देगा, जिनके पास उनके पता पुस्तिका में उनका ईमेल पता है। – algal

+0

जब मैं इसे आज़माता हूं, तो मुझे त्रुटि संदेश मिलता है: CKAplplications टाइप करेंमिशन के पास कोई सदस्य 'PermutionUserDiscoverability' नहीं है। –

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