相关疑难解决方法(0)

以编程方式在iOS中获取自己的电话号码

有没有办法通过iPhone SDK的标准API获取自己的电话号码?

iphone phone-number ios

327
推荐指数
6
解决办法
21万
查看次数

以编程方式获取设备的电话号码

我需要以编程方式获取我的iOS设备的电话号码.

通过谷歌我发现这个代码:

NSString *num = [[NSUserDefaults standardUserDefaults] stringForKey:@"SBFormattedPhoneNumber"];
NSLog(@"Phone Number: %@", num);
Run Code Online (Sandbox Code Playgroud)

但在某处,我读到如果我使用此代码,Apple将拒绝我的应用程序.

有没有办法在没有用户输入的情况下获取当前的设备电话号码?

iphone objective-c ios

15
推荐指数
2
解决办法
2万
查看次数

iOS 7:如何通过私有API获取自己的号码?

旧方法不再起作用:

//方式1

void *lib = dlopen("/Symbols/System/Library/Framework/CoreTelephony.framework/CoreTelephony", RTLD_LAZY);
NSString* (*getPhoneNumber)() = dlsym(lib, "CTSettingCopyMyPhoneNumber");

if (getPhoneNumber == nil) {
    NSLog(@"getPhoneNumber is nil");
    return nil;
}
NSString* ownPhoneNumber = getPhoneNumber();
Run Code Online (Sandbox Code Playgroud)

//方式2

extern NSString* CTSettingCopyMyPhoneNumber();
NSString *phone = CTSettingCopyMyPhoneNumber();
Run Code Online (Sandbox Code Playgroud)

相关问题:

是否可以在iOS中检测设备的电话号码?

[UPDATE]

提供的方法适用于不带JB的iOS 6.1.4和带有JB的iOS 7.1.2

感谢用户creker提示!

要获得号码,您必须使用以下方式:

1.代码

-(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;
    } …
Run Code Online (Sandbox Code Playgroud)

phone-number core-telephony ios7

14
推荐指数
1
解决办法
1万
查看次数

标签 统计

ios ×2

iphone ×2

phone-number ×2

core-telephony ×1

ios7 ×1

objective-c ×1