আইফোন এসডিকে থেকে স্ট্যান্ডার্ড এপিআই দ্বারা নিজস্ব ফোন নম্বর পাওয়ার কোনও উপায় আছে কি?
আইফোন এসডিকে থেকে স্ট্যান্ডার্ড এপিআই দ্বারা নিজস্ব ফোন নম্বর পাওয়ার কোনও উপায় আছে কি?
উত্তর:
নেতিবাচক চিহ্ন পাওয়ার ঝুঁকিতে, আমি পরামর্শ দিতে চাই যে সর্বোচ্চ র্যাঙ্কিং সমাধান (বর্তমানে প্রথম প্রতিক্রিয়া) সর্বশেষতম এসডিকে চুক্তিটি লঙ্ঘন করে 5 নভেম্বর, 2009-এ আমাদের আবেদনটি ব্যবহার করার জন্য কেবল প্রত্যাখ্যাত হয়েছিল। অ্যাপলের প্রতিক্রিয়া এখানে:
"সুরক্ষার কারণে, আইফোন ওএস একটি অ্যাপ্লিকেশন (তার পছন্দ এবং ডেটা সহ) ফাইল সিস্টেমের একটি অনন্য স্থানে সীমাবদ্ধ করে This এই বিধিনিষেধটি অ্যাপ্লিকেশনটির" স্যান্ডবক্স "নামে পরিচিত সুরক্ষা বৈশিষ্ট্যের অংশ The দানযুক্ত নিয়ন্ত্রণগুলি ফাইল, পছন্দ, নেটওয়ার্ক সংস্থান, হার্ডওয়্যার এবং এগুলিতে কোনও অ্যাপ্লিকেশনটির অ্যাক্সেসকে সীমাবদ্ধ করে। "
আপনার অ্যাপ্লিকেশনটির ধারকটির মধ্যে ডিভাইসের ফোন নম্বর উপলব্ধ নেই। আপনার অ্যাপ্লিকেশনটি কেবলমাত্র আপনার ডিরেক্টরি কন্টেইনারটিতে পড়তে হবে এবং অ্যাপ্লিকেশন স্টোরটির জন্য আপনার অ্যাপ্লিকেশনটির পুনর্বিবেচনা করার জন্য আপনার বাইনারিটি আইটিউনস কানেক্টে পুনরায় জমা দিতে হবে।
এটি ব্যবহারকারীর নিজস্ব ফোন নম্বর প্রবেশ করানো থেকে বাঁচাতে চেয়ে আমরা প্রকৃত হতাশা পেয়েছি।
না, এটি করার কোনও আইনী এবং নির্ভরযোগ্য উপায় নেই।
আপনি যদি কোনও উপায় খুঁজে পান তবে ভবিষ্যতে এটি অক্ষম হয়ে যাবে, যেমনটি প্রতিটি পদ্ধতির আগে ঘটেছিল।
আপডেট: সক্ষমতা iOS 4 বা এর চারপাশে অ্যাপল দ্বারা সরানো হয়েছে বলে মনে হয়
কেবলমাত্র পূর্ববর্তী উত্তরে প্রসারিত করার জন্য, এরকম কিছু আমার জন্য তা করে:
NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"];
দ্রষ্টব্য : এটি আইফোনটির আইটিউনস অ্যাক্টিভেশন চলাকালীন প্রবেশ করা "ফোন নম্বর" পুনরুদ্ধার করে এবং এটি নাল বা একটি ভুল মান হতে পারে। এটা না SIM কার্ড থেকে পড়া।
কমপক্ষে এটি ২.১-এ ঘটে। এনএসইউসারডেফাল্টসে আরও কয়েকটি আকর্ষণীয় কী রয়েছে যা সম্ভবত শেষ নাও হতে পারে। (এটি আমার অ্যাপে যা ইউআইবিউব ভিউ ব্যবহার করে)
WebKitJavaScriptCanOpenWindowsAutomatically
NSInterfaceStyle
TVOutStatus
WebKitDeveloperExtrasEnabledPreferenceKey
ইত্যাদি।
নিশ্চিত না, কিছু হলে অন্যরা কী করে।
প্রাইভেট এপিআই ব্যবহার করে আপনি নিম্নলিখিত উপায়ে ব্যবহারকারীর ফোন নম্বর পেতে পারেন:
extern NSString* CTSettingCopyMyPhoneNumber();
+(NSString *) phoneNumber {
NSString *phone = CTSettingCopyMyPhoneNumber();
return phone;
}
আপনার প্রকল্পে কোরটেলফোন.ফ্রেমওয়ার্কও অন্তর্ভুক্ত করুন।
আপনি সম্ভবত প্রস্তুত সবাই জানেন যে আপনি নিম্নলিখিত কোডের লাইনটি ব্যবহার করেন কিনা, আপনার অ্যাপল অ্যাপল দ্বারা প্রত্যাখ্যান করা হবে
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.
আশাকরি এটা সাহায্য করবে!
[UIDevice identifierForVendor]
instead
ফোন নম্বর ক্যাপচারের জন্য আপনি একা আইওএস এপিআই ব্যবহার করতে পারবেন না (এমনকি প্রাইভেট এপিআই সহ বেসরকারী অ্যাপ্লিকেশনটিতেও), কারণ এটি করার সমস্ত পরিচিত পদ্ধতিগুলি আইওএস ১১ হিসাবে প্যাচ এবং ব্লক করা হয়েছে 11 এমনকি যদি কোনও নতুন শোষণ পাওয়া যায় তবে অ্যাপল তৈরি করেছে পরিষ্কার করুন যে এগুলি করার জন্য প্রাইভেট API গুলি ব্যবহার করার জন্য তারা অ্যাপ স্টোর থেকে কোনও অ্যাপ্লিকেশন প্রত্যাখ্যান করবে। বিস্তারিত জানতে @ ডিলানের উত্তর দেখুন।
তবে, কোনও ব্যবহারকারীর ডেটা এন্ট্রি ছাড়াই ফোন নম্বর ক্যাপচার করার কোনও আইনি উপায় রয়েছে । এটি স্ন্যাপচ্যাট যা করে তার অনুরূপ, তবে সহজ, কারণ এটি ব্যবহারকারীর নিজস্ব ফোন নম্বর টাইপ করার প্রয়োজন হয় না।
এই অ্যাপ্লিকেশনটির অ্যাপ্লিকেশনটির অনন্য ইনস্টলেশন কোড সহ কোনও সার্ভারে একটি এসএমএস বার্তা প্রেরণ করা উচিত The অ্যাপটি একই সার্ভারটি এই অনন্য অ্যাপ্লিকেশন ইনস্টলেশন কোডটি সহ কোনও ডিভাইস থেকে কোনও এসএমএস বার্তা পেয়েছে কিনা তা দেখতে সেটিকে জিজ্ঞাসা করতে পারে। যদি এটি থাকে তবে এটি যে ফোন নম্বর পাঠিয়েছিল তা এটি পড়তে পারে। প্রক্রিয়া দেখানো একটি ডেমো ভিডিও এখানে । আপনি দেখতে পাচ্ছেন, এটি কবজির মতো কাজ করে!
এটি সেট আপ করা খুব সহজ নয়, তবে এটি এখানে টিউটোরিয়ালে প্রদত্ত নমুনা কোড সহ একটি ফ্রি এডাব্লুএস স্তরে কোনও চার্জ ছাড়াই কয়েক ঘন্টার মধ্যে কনফিগার করা হবে ।
আপনার ফোন নম্বর পেতে আপনি একটি প্লিস্ট ফাইলটি পড়তে পারেন। এটি জেল-ব্রোং নন আইডেস্কসগুলিতে কাজ করবে না:
NSString *commcenter = @"/private/var/wireless/Library/Preferences/com.apple.commcenter.plist";
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:commcenter];
NSString *PhoneNumber = [dict valueForKey:@"PhoneNumber"];
NSLog([NSString stringWithFormat:@"Phone number: %@",PhoneNumber]);
অ্যাপল এটির অনুমতি দেয় কিনা জানি না তবে এটি আইফোনে কাজ করে।
এটি করার জন্য কোনও অফিসিয়াল এপিআই নেই। ব্যক্তিগত 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;
}
এটি জেবি এবং বিশেষ স্বাক্ষর ছাড়াই আইওএস 6 এ কাজ করে।
জেবি সহ আইওএস 7- তে উল্লিখিত নির্মাতা হিসাবে এটির কাজ করার জন্য আপনাকে এনটাইটেলমেন্টগুলি ব্যবহার করতে হবে।
এনটাইটেলমেন্ট সহ এটি কীভাবে করবেন আপনি এখানে পেতে পারেন: আইওএস 7: কীভাবে ব্যক্তিগত এপিআইয়ের মাধ্যমে নিজের নম্বর পাবেন?
অ্যাপ স্টোর এটিকে প্রত্যাখ্যান করবে, কারণ এটি অ্যাপ্লিকেশন ধারকের বাইরে পৌঁছেছে।
অ্যাপ্লিকেশনগুলিকে তাদের বান্ডিলগুলিতে স্ব-অন্তর্ভুক্ত থাকা উচিত এবং তারা নির্ধারিত ধারক অঞ্চলের বাইরে ডেটা পড়তে বা লিখতে না পারে
বিভাগ ২.২.২: https://developer.apple.com/app-store/review/guidlines/#software-requirements