ios - আইফ - প্রোগ্রামে আইওএস নিজস্ব ফোন নম্বর পেতে




ওএস কি (8)

আইফোন এসডিকে থেকে স্ট্যান্ডার্ড APIs দ্বারা নিজস্ব ফোন নম্বর পেতে কোন উপায় আছে কি?


AppStore এটা প্রত্যাখ্যান করবে, এটি অ্যাপ্লিকেশন ধারক বাইরে পৌঁছেছেন হিসাবে।

অ্যাপ্লিকেশনগুলি তাদের বান্ডলে স্ব-অন্তর্ভুক্ত থাকা উচিত এবং মনোনীত ধারক এলাকার বাইরে ডেটা পড়তে বা লিখতে পারে না

অনুচ্ছেদ 2.5.2: https://developer.apple.com/app-store/review/guidelines/#software-requirements


আপনি ফোন নম্বরটি ক্যাপচার করতে (এমনকি ব্যক্তিগত API সহ ব্যক্তিগত অ্যাপ্লিকেশানেও) আইপিও API ব্যবহার করতে পারবেন না, কারণ এটি করার সমস্ত পরিচিত পদ্ধতি iOS এর মতো প্যাচ এবং ব্লক করা হয়েছে। এমনকি যদি নতুন শোষণ পাওয়া যায় তবেও অ্যাপল তৈরি করেছে এটি করার জন্য ব্যক্তিগত API গুলি ব্যবহার করার জন্য তারা অ্যাপ স্টোর থেকে যেকোনো অ্যাপ্লিকেশন প্রত্যাখ্যান করবে। বিস্তারিত জানতে @ ডিলান এর উত্তর দেখুন।

যাইহোক, কোনও ব্যবহারকারীর ডেটা এন্ট্রি ছাড়াই ফোন নম্বরটি ক্যাপচার করার আইনি উপায় রয়েছে । এটি স্ন্যাপচ্যাটের মতোই, কিন্তু সহজ, এটি ব্যবহারকারীর নিজস্ব ফোন নম্বর টাইপ করার প্রয়োজন হয় না।

অ্যাপ্লিকেশনটি অ্যাপ্লিকেশানটির অনন্য ইনস্টলেশন কোড সহ একটি সার্ভারে প্রোগ্রামেমেটিকভাবে একটি SMS বার্তা পাঠানোর ধারণাটি হল। অ্যাপ্লিকেশনটি তখন এই সার্ভারটি এই অনন্য অ্যাপ্লিকেশন ইনস্টলেশন কোড সহ একটি ডিভাইস থেকে একটি SMS বার্তা পেয়েছে কিনা তা দেখতে অনুসন্ধান করতে পারে। যদি এটি থাকে তবে এটি পাঠানো ফোন নম্বরটি পড়তে পারে। এখানে একটি ডেমো ভিডিও প্রক্রিয়া দেখাচ্ছে। আপনি দেখতে পারেন, এটি একটি কবজ মত কাজ করে!

এটি সেট আপ করা সহজ নয়, তবে here টিউটোরিয়ালে প্রদত্ত নমুনা কোড সহ একটি বিনামূল্যে AWS স্তর কোনও চার্জ ছাড়াই কয়েক ঘন্টার মধ্যে কনফিগার করা হবে।


আপনি যদি নিম্নলিখিত কোডটি ব্যবহার করেন তবে আপনি সম্ভবত সব প্রস্তুত জানেন, আপনার অ্যাপটি অ্যাপল দ্বারা প্রত্যাখ্যাত হবে

NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"];

এখানে একটি রেফারেন্স

http://ayeapi.blogspot.com/2009/12/sbformatphonenumber-is-lie.html

আপনি পরিবর্তে নিম্নলিখিত তথ্য ব্যবহার করতে পারেন

NSString *phoneName = [[UIDevice currentDevice] name];

NSString *phoneUniqueIdentifier = [[UIDevice currentDevice] uniqueIdentifier];

এবং তাই

@property(nonatomic,readonly,retain) NSString    *name;              // e.g. "My iPhone"
@property(nonatomic,readonly,retain) NSString    *model;             // e.g. @"iPhone", @"iPod Touch"
@property(nonatomic,readonly,retain) NSString    *localizedModel;    // localized version of model
@property(nonatomic,readonly,retain) NSString    *systemName;        // e.g. @"iPhone OS"
@property(nonatomic,readonly,retain) NSString    *systemVersion;     // e.g. @"2.0"
@property(nonatomic,readonly) UIDeviceOrientation orientation;       // return current device orientation
@property(nonatomic,readonly,retain) NSString    *uniqueIdentifier;  // a string unique to each device based on various hardware info.

আশাকরি এটা সাহায্য করবে!


এটি করার জন্য কোন সরকারী API। ব্যক্তিগত API ব্যবহার করে আপনি নিম্নলিখিত পদ্ধতি ব্যবহার করতে পারেন:

-(NSString*) getMyNumber {
    NSLog(@"Open CoreTelephony");
    void *lib = dlopen("/Symbols/System/Library/Framework/CoreTelephony.framework/CoreTelephony",RTLD_LAZY);
    NSLog(@"Get CTSettingCopyMyPhoneNumber from CoreTelephony");
    NSString* (*pCTSettingCopyMyPhoneNumber)() = dlsym(lib, "CTSettingCopyMyPhoneNumber");
    NSLog(@"Get CTSettingCopyMyPhoneNumber from CoreTelephony");

    if (pCTSettingCopyMyPhoneNumber == nil) {
        NSLog(@"pCTSettingCopyMyPhoneNumber is nil");
        return nil;
    }
    NSString* ownPhoneNumber = pCTSettingCopyMyPhoneNumber();
    dlclose(lib);
    return ownPhoneNumber;
}

এটি JB এবং বিশেষ স্বাক্ষর ছাড়া iOS 6 এ কাজ করে।

creker 7 এ creker হিসাবে জেবি সহ উল্লেখ করার জন্য আপনাকে এটি কার্যকর করার জন্য এনটাইটেলমেন্ট ব্যবহার করতে হবে।

এনটাইটেলমেন্টের সাথে এটি কীভাবে পাওয়া যায় তা এখানে দেখুন: iOS 7: ব্যক্তিগত API এর মাধ্যমে নিজের নম্বরটি কীভাবে পেতে হয়?


না, এটি করার কোন আইনি এবং নির্ভরযোগ্য উপায় নেই।

যদি আপনি কোনও উপায় খুঁজে পান তবে এটি ভবিষ্যতে অক্ষম করা হবে, যেমনটি আগে প্রতিটি পদ্ধতিতে ঘটেছে।


নেতিবাচক চিহ্ন পাওয়ার ঝুঁকিতে, আমি প্রস্তাব দিতে চাই যে সর্বাধিক র্যাঙ্কিং সমাধান (বর্তমানে প্রথম প্রতিক্রিয়া) 5 নভেম্বর, 200 9 অনুসারে সর্বশেষ এসডিকে চুক্তি লঙ্ঘন করে। আমাদের আবেদনটি এটিকে ব্যবহার করার জন্য প্রত্যাখ্যাত হয়েছিল। অ্যাপল থেকে প্রতিক্রিয়া এখানে:

"নিরাপত্তার কারণে, আইফোন OS ফাইল সিস্টেমের একটি অনন্য অবস্থানে একটি অ্যাপ্লিকেশন (তার পছন্দ এবং তথ্য সহ) কে সীমিত করে। এই সীমাবদ্ধতাটি অ্যাপ্লিকেশনটির" স্যান্ডবক্স "হিসাবে পরিচিত নিরাপত্তা বৈশিষ্ট্যর অংশ। স্যান্ডবক্সটি সূক্ষ্ম- গ্র্যান্ড কন্ট্রোল ফাইল, পছন্দসই, নেটওয়ার্ক রিসোর্স, হার্ডওয়্যার ইত্যাদির জন্য অ্যাপ্লিকেশনের অ্যাক্সেস সীমিত করে। "

ডিভাইসের ফোন নম্বর আপনার অ্যাপ্লিকেশনের কন্টেইনারে উপলব্ধ নয়। আপনার অ্যাপ্লিকেশনটি কেবলমাত্র আপনার ডিরেক্টরি কন্টেইনারের মধ্যে পড়তে এবং আপনার অ্যাপ্লিকেশনটিকে অ্যাপ স্টোরের জন্য পুনঃবিবেচনা করার জন্য আই টিউনস কানেক্টে আপনার বাইনারি পুনরায় জমা দিতে হবে।

এটি একটি আসল হতাশা ছিল যেহেতু আমরা ব্যবহারকারীকে তাদের নিজস্ব ফোন নম্বর প্রবেশ করতে বাধ্য করতে চেয়েছিলাম।


ব্যক্তিগত API ব্যবহার করে আপনি নিম্নলিখিত পদ্ধতিতে ব্যবহারকারীর ফোন নম্বর পেতে পারেন:

extern NSString* CTSettingCopyMyPhoneNumber();


+(NSString *) phoneNumber {
NSString *phone = CTSettingCopyMyPhoneNumber();

return phone;
}

এছাড়াও আপনার প্রকল্পের CoreTelephony.framework অন্তর্ভুক্ত।


আপডেট: iOS 4 এর কাছাকাছি বা তার কাছাকাছি অ্যাপল দ্বারা ক্ষমতা সরানো হয়েছে বলে মনে হয়

শুধু একটি পূর্ববর্তী উত্তর প্রসারিত, এই মত কিছু আমার জন্য এটা করে:

NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"];

দ্রষ্টব্য : এটি আইফোন এর আইটিউনস অ্যাক্টিভেশনের সময় প্রবেশ করা "ফোন নম্বর" পুনরুদ্ধার করে এবং ভুল বা ভুল মান হতে পারে। এটা সিম কার্ড থেকে পড়া হয় না।

কমপক্ষে যে 2.1। NSUser ডিফল্টগুলিতে অন্যান্য আকর্ষণীয় কীগুলি রয়েছে যা শেষও হতে পারে না। (এটি আমার অ্যাপে যা একটি UIWebView ব্যবহার করে)

WebKitJavaScriptCanOpenWindowsAutomatically
NSInterfaceStyle
TVOutStatus
WebKitDeveloperExtrasEnabledPreferenceKey

এবং তাই।

নিশ্চিত না কি, যদি কিছু, অন্যদের না।







phone-number