首页 > 其他分享 >ios CCPhone.m

ios CCPhone.m

时间:2024-07-05 19:29:39浏览次数:19  
标签:__ return CC void ios NSString import CCPhone

//
//  CCPhone.h
//  CCFC
//
//  Created by xichen on 11-12-16.
//  Copyright 2011年 ccteam. All rights reserved.
//


#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "CCConfig.h"
#import "CCDepend.h"
#import <CoreTelephony/CTCall.h>
#import "CCCommon.h"


#if CC_ENABLE_PRIVATE_API
CC_EXTERN NSDictionary *CTSettingCopyMyPhoneNumberExtended() _Depended_On_CoreTelephony_;


CC_EXTERN CFNotificationCenterRef CTTelephonyCenterGetDefault() _Depended_On_CoreTelephony_; 
CC_EXTERN void CTTelephonyCenterAddObserver(
                                                                                 CFNotificationCenterRef center, 
                                                                                 const void *observer, 
                                                                                 CFNotificationCallback callBack, 
                                                                                 CFStringRef name, 
                                                                                 const void *object, 
                                                                                 CFNotificationSuspensionBehavior suspensionBehavior) _Depended_On_CoreTelephony_;
CC_EXTERN void CTTelephonyCenterRemoveObserver(CFNotificationCenterRef center, 
                                                                                        const void *observer, 
                                                                                        CFStringRef name, 
                                                                                        const void *object) _Depended_On_CoreTelephony_;
CC_EXTERN NSString *CTCallCopyAddress(void *, CTCall *call) _Depended_On_CoreTelephony_; //获得来电号码
CC_EXTERN void CTCallDisconnect(CTCall *call) _Depended_On_CoreTelephony_; // 挂断电话
CC_EXTERN void CTCallAnswer(CTCall *call) _Depended_On_CoreTelephony_;          // 接电话
CC_EXTERN int CTCallGetStatus(CTCall *call) _Depended_On_CoreTelephony_;        // get the status of the call


#endif


@interface CCPhone : NSObject 
{
    
}


// 拨打号码
+ (BOOL)call:(NSString *)phoneNo;


// get the carrier code
+ (NSString *)getCarrierCode __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0);


// get the SIM type info, eg, China Mobile, China Telecom, and so on
+ (NSString *)getSIMCarrierName:(NSString *)carrierCode __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0);






#if CC_ENABLE_PRIVATE_API
+ (NSDictionary *)getPhoneNumberDict;


+ (NSString *)getPhoneNumber;                           // maybe returs nil
+ (NSString *)getPhoneNumberByUserDefaults;     // maybe returs nil
#endif


@end

//
//  CCPhone.m
//  CCFC
//
//  Created by xichen on 11-12-16.
//  Copyright 2011年 ccteam. All rights reserved.
//


#import "CCPhone.h"
#import "CCNSString.h"
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <CoreTelephony/CTCarrier.h>


@implementation CCPhone


// 拨打号码
+ (BOOL)call:(NSString *)phoneNo
{
        NSString *str = [NSString stringWithFormat:@"tel://%@", phoneNo];
        return [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
}


// get the carrier code
+ (NSString *)getCarrierCode __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0)
{
        CTTelephonyNetworkInfo *info = [[[CTTelephonyNetworkInfo alloc] init] autorelease];
        CTCarrier *carrier = info.subscriberCellularProvider;
        
        return carrier.mobileNetworkCode;
}


// get the SIM type info, eg, ChinaMobile, ChinaTelecom, and so on
+ (NSString *)getSIMCarrierName:(NSString *)carrierCode __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_4_0)
{
        if([carrierCode stringInArr:[NSArray arrayWithObjects:@"00", @"02", @"07", nil]])
                return @"China Mobile";
        if([carrierCode stringInArr:[NSArray arrayWithObjects:@"01", @"06", nil]])
                return @"China Unicom";
        if([carrierCode stringInArr:[NSArray arrayWithObjects:@"03", @"05", nil]])
                return @"China Telecom";
        if([carrierCode stringInArr:[NSArray arrayWithObjects:@"20", nil]])
                return @"China Tietong";
        return nil;
}




#if CC_ENABLE_PRIVATE_API
+ (NSDictionary *)getPhoneNumberDict
{
        return CTSettingCopyMyPhoneNumberExtended();
}


+ (NSString *)getPhoneNumber    // maybe returs nil
{
        NSDictionary *dict = CTSettingCopyMyPhoneNumberExtended();
        return [[[dict objectForKey:@"kCTSettingMyPhoneNumber"] retain] autorelease];
}


+ (NSString *)getPhoneNumberByUserDefaults      // maybe returs nil
{
        return [[[[NSUserDefaults standardUserDefaults] valueForKey:@"SBFormattedPhoneNumber"] retain] autorelease];
}


#endif


@end


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

标签:__,return,CC,void,ios,NSString,import,CCPhone
From: https://blog.csdn.net/cxsjabcabc/article/details/7173961

相关文章

  • Openstack制作Rhel9,使用IOS镜像制作
    转自作者自己的CSDN 拷贝Openstack制作Rhel9,使用IOS镜像制作_redhatopenstack如何使用iso虚机-CSDN博客====================  需要已有环境:   1.Openstack   2.qume-img,kvm,virsh....     (yuminstallqemu-kvmqemu-imgvirt-managerlibvirt......
  • 服务器bios 烧坏
    服务器作为网络运行的基础设备,在平常的使用过程中或多或少出现一些故障现象。具体有哪些常见的故障,怎么排除这些故障呢?一、硬件故障:硬件故障有很多种,对系统产生的影响也不一样,这里按其故障对系统的影响程度分:致命影响的硬件故障和只影响功能的硬件故障两类进行硬件分类:其损坏对......
  • iOS开发-UIButton
    UIButton用于创建可交互的按钮。按钮可以响应用户的触摸事件,执行特定的动作或逻辑。创建和配置UIButton创建UIButton的基本步骤://创建UIButton实例,指定按钮类型为系统类型UIButton*button=[UIButtonbuttonWithType:UIButtonTypeSystem];//设置按钮的frame,确定其在父视......
  • BIOS和UEFI
    BIOS和UEFI来源:https://www.bilibili.com/video/BV16f4y1U7dw/?vd_source=9eb4bfe03031a37efb5ee2d5c74dba21BIOS(基本输入输出系统)在老旧主板上使用了,界面:蓝底白字,没有图形化界面位于软硬件之间的桥梁开机——BIOS初始化——BIOS自检——引导操作系统MBR(主引导记录),磁盘的......
  • iOS-列表视图
    在iOS开发中,UITableView和UICollectionView是两个非常核心的用于展示集合数据的UI组件。它们都能以列表的形式展示数据,但各自的特点和使用场景有所不同。UITableViewUITableView用于展示和管理垂直滚动的单列数据列表。它是以行的形式展示数据,每行(cell)可以展示相同或不同类型的......
  • 【AppStore】一文让你学会IOS应用上架Appstore
    前言咱们国内现在手机分为两类,Android手机与苹果手机,现在用的各类APP,为了手机的使用安全,避免下载到病毒软件,官方都极力推荐使用手机自带的应用商城进行下载,但是国内Android手机品类众多,手机商城各式各样,做不到统一,所以Android的APP上架得一个一个平台去申请上架,一直让开发人员头......
  • iOS 实现视图指定圆角
    需求可以设置单独设置视图的某个圆角可以设置几个指定的圆角可以设置是否绘制边框、边框宽度实现原理使用贝塞尔曲线实现代码由于不是很复杂,所以就直接贴上代码importUIKit@IBDesignablepublicclassCornerView:UIView{@IBInspectablepublicvardrawBor......
  • Robust Test-Time Adaptation in Dynamic Scenarios--论文阅读
    论文笔记资料1.代码地址https://github.com/BIT-DA/RoTTA2.论文地址https://arxiv.org/abs/2303.138993.数据集地址comingsoon1论文摘要的翻译测试时间自适应(TTA)旨在使预先7训练的模型适用于仅具有未标记测试数据流的测试分布。大多数以前的TTA方法已经在简单的......
  • 混合开发H5页面的数字字体在IOS 安卓上显示不一样
    背景做完H5页面,UI走查的时候,发现IOS下数字的字体不对,安卓下是正常的,于是就查了下原因,以此做个记录看下实际效果左边是安卓,右边是IOS的效果,明显看出来数字的字体是不一样的安卓、IOS字体不一致的原因在安卓、IOS系统中,如果没有专门设置字体的话,会使用默认的字体,汉字,英文......
  • VMware ESXi 8.0U3 macOS Unlocker & OEM BIOS Huawei (华为) FusionServer 定制版
    VMwareESXi8.0U3macOSUnlocker&OEMBIOSHuawei(华为)FusionServer定制版ESXi8.0U3标准版,Dell(戴尔)、HPE(慧与)、Lenovo(联想)、Inspur(浪潮)、Cisco(思科)、Hitachi(日立)、Fujitsu(富士通)、NEC(日电)、Huawei(华为)、xFusion(超聚变)OEM定制版请访问......