使用 Core 电话的 iPhone 手机号码

发布于 2024-09-13 08:45:11 字数 95 浏览 3 评论 0原文

据我了解,iPhone SDK中没有可用的公共API来查找用户的手机号码。

我们可以使用4.0 SDK中添加的Core电话框架找到iPhone用户的手机号码吗?

As far as my understanding, there is no public API available in iPhone SDK to find the users mobile number.

Can we find the mobile number of iPhone user using the Core telephony framework added in 4.0 SDK?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我很坚强 2024-09-20 08:45:11

是的,你可以,但这很棘手。它涉及使用iOS私有API,如果您想将您的应用程序发布到App Store上,这将决定Apple拒绝您的应用程序。

这就是我所做的:

  1. 下载并安装类转储实用程序:
    http://www.codethecode.com/projects/class-dump/
  2. 在命令行中转到此文件夹:
    /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/CoreTelephony.framework
    并执行以下命令:

    <块引用>

    类转储 CoreTelephony > CoreTelephony.h

    这将在当前目录中创建一个头文件。移动这个
    文件位于所需目录中。

  3. 在您的 Xcode 项目中,导入 CoreTelephony.framework (Xcode 4:
    点击项目目标->构建阶段选项卡 ->链接二进制文件
    图书馆 -> + ->在 iOS 列表中选择 CoreTelephony.framework
    ->点击Add)
  4. 使用与上面Xcode相同的方法导入CoreTelephony.h文件
    4:点击项目目标->构建阶段选项卡 ->链接二进制文件
    与图书馆 -> + ->添加其他->在 Finder 中选择您的文件)
  5. 在 CoreTelephony.h 文件的末尾添加以下内容:

    extern NSString *CTSettingCopyMyPhoneNumber();
    
  6. 在代码中导入 CoreTelephony.h 并调用上述函数。
  7. 构建项目的时候,你可能会发现有编译
    CoreTelephony.h 中的错误 - 通常是接口声明
    需要在另一个接口声明之前移动或
    协议序列写得不正确
  8. 如果出现链接错误,请使用以下链接标志
    项目目标的构建设置:

    <前><代码>-force_flat_namespace
    -未定义抑制

    (Xcode 4:单击项目目标 -> 构建设置选项卡 -> 链接 -> 双击值部分
    其他链接器标志属性 -> + ->在上面添加标志 ->完成

  9. ,您应该能够获得该电话号码:)

Yes, you can, but it's tricky. It involves using iOS private API, which will determine Apple to reject your app in case you want to post it on the App Store.

Here's what I did:

  1. download and install the class-dump utility:
    http://www.codethecode.com/projects/class-dump/
  2. in the command line go to this folder:
    /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/System/Library/Frameworks/CoreTelephony.framework
    and perform the following command:

    class-dump CoreTelephony > CoreTelephony.h

    This will create a header file in the current directory. Move this
    file in the desired directory.

  3. in your Xcode project, import the CoreTelephony.framework (Xcode 4:
    click on the project target -> Build Phases tab -> Link Binary With
    Libraries -> + -> select the CoreTelephony.framework in the iOS list
    -> click Add)
  4. import the CoreTelephony.h file using the same method as above Xcode
    4: click on the project target -> Build Phases tab -> Link Binary
    With Libraries -> + -> Add Other -> select your file in the Finder)
  5. at the end of the CoreTelephony.h file, add the following:

    extern NSString *CTSettingCopyMyPhoneNumber();
    
  6. import the CoreTelephony.h in your code and call the above function.
  7. when building the project, you may find that there are compilation
    errors in the CoreTelephony.h - usually an interface declaration
    that needs to be moved before another interface declaration or
    protocol sequences written incorrectly
  8. in case you have linking errors, use the following linking flags in
    the build settings of your project target:

    -force_flat_namespace 
    -undefined suppress 
    

    (Xcode 4: click on the project target -> Build Settings tab -> Linking -> double-click on the values section
    of the Other Linker Flags property -> + -> add flags above -> Done

  9. by now you should be able to get that phone number :)
落花浅忆 2024-09-20 08:45:11

不,CoreTelephony 框架提供了一些有关运营商的基本信息和有关呼叫的有限信息,仅此而已。

有限的信息包括当前活动呼叫量、呼叫 ID(不是手机号码,只是操作系统用于跟踪特定呼叫的唯一 ID)以及呼叫状态(例如呼叫是否处于保持状态)等信息或不。

CallTelephony 的主要功能是一个 API,用于检查运营商是否允许通过 3G 进行 VoIP。

No, the CoreTelephony framework provides some basic information about the carrier and limited info about calls, not much else.

The limited information includes things like the amount of current active calls, the call ID (not a mobile number, just a unique ID that the OS uses to track the particular call) and the state of a call, like whether the call is on hold or not.

The main feature in CallTelephony is an API to check whether or not a carrier allows VoIP over 3G.

红颜悴 2024-09-20 08:45:11

如果您想从通话记录中获取手机号码,请参阅此链接,它可能会有所帮助。但我不确定使用这个苹果后是否会批准你的应用程序。
通话详细信息

if u want to get cell phone number from call log then see this link it may be helpful. But i am not sure that after using this apple will aprove ur app.
call details

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文