我想知道是否有可能检测用户是否正在从当前处于后台的应用程序进行呼叫.
或者,如果从我的应用程序启动了呼叫,则在呼叫结束时收到通知.
或者,甚至更多 - 有可能检测哪个应用程序在前台?
我不相信这是可能的,但我不得不尝试... ;-)
任何信息将不胜感激.
谢谢.
我正在使用本主题中的答案.iPhone - 如何确定设备的运营商(AT&T,Verizon等?),这与获取iphone中的运营商详细信息相同.虽然使用SIM卡时工作正常,但如果没有SIM卡,则返回的运营商名称是旧的运营商名称.它未检测到SIM已被删除.
我知道这与Apple文档相矛盾,如果没有载体,CTCarrier对象应为零.但在我的应用程序中,我记录了运营商信息,它给了我最新的运营商名称,虽然没有安装SIM卡.
有没有办法在iPhone上获取mnc和mcc号码?
在iOS 7上,CTSubscriber已添加到CoreTelephony框架中.没有可用的文档,只有它的头文件:
/*
* CTSubscriberTokenRefreshed
*
* Description:
* The name of the NSNotification sent when the carrier token is available.
*/
CORETELEPHONY_EXTERN NSString * const CTSubscriberTokenRefreshed __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
CORETELEPHONY_CLASS_AVAILABLE(7_0)
@interface CTSubscriber : NSObject
/*
* carrierToken
*
* Description:
* A data blob containing authorization information about the subscriber.
*
* May return nil if no token is available.
*/
@property (nonatomic, readonly, retain) NSData* carrierToken __OSX_AVAILABLE_STARTING(__MAC_NA,__IPHONE_7_0);
@end
Run Code Online (Sandbox Code Playgroud)
Core Telephony …
我CTCallCenter在我的项目中使用.现在它被弃用了,我想知道什么是替代品?如何获得语音通话活动?
在搜索到处后,我发现有一种方法可以使用以下API在iPhone中添加eSIM
func addPlan(with: CTCellularPlanProvisioningRequest, completionHandler: (CTCellularPlanProvisioningAddPlanResult) -> Void)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么但是完成处理程序没有返回CTCellularPlanProvisioningAddPlanResult的结果 只是打印以下错误.
Domain=NSCocoaErrorDomain Code=4099 "The connection to service named
com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo=
{NSDebugDescription=The connection to service named
com.apple.commcenter.coretelephony.xpc was invalidated.
Run Code Online (Sandbox Code Playgroud)
我想知道这个API是如何工作的,你可以在下面看到我的代码
let ctpr = CTCellularPlanProvisioningRequest()
ctpr.address = "SMDP+"
ctpr.confirmationCode = ""
ctpr.eid = ""
ctpr.iccid = ""
let ctcp = CTCellularPlanProvisioning()
ctcp.addPlan(with: ctpr) { (result) in
print(result)
}
Run Code Online (Sandbox Code Playgroud)
我正在使用CoreTelephony框架
任何帮助都会被批评
在检查其他应用程序后,我发现GigSky正在做同样的事情,有谁知道他们在做什么?
更新:
截至目前,我在下面找到了权利请求URL检查
https://developer.apple.com//contact/request/esim-access-entitlement
我要求,但苹果没有回应.
TestFlight关于一个有趣的崩溃,我收到了这个回溯.
据我所知,应用程序在使用时会在某些时候崩溃CoreTelephony.当用户使用该应用程序时,有人可以"呼叫"吗?
据我所知,该应用程序没有使用CoreTelephony Framework.异常原因是SIGSEGV,崩溃线程为0
谢谢!
PRIMARY THREAD THREAD 0
0 GPIreland 0x00113a1a testflight_backtrace + 238
1 GPIreland 0x00114704 TFSignalHandler + 264
2 libsystem_c.dylib 0x359d1e92 _sigtramp + 42
3 CoreTelephony 0x330078b4 <redacted> + 32
4 CoreFoundation 0x333465de __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 14
5 CoreFoundation 0x33346290 __CFRunLoopDoTimer + 272
6 CoreFoundation 0x33344f00 __CFRunLoopRun + 1232
7 CoreFoundation 0x332b7ebc CFRunLoopRunSpecific + 356
8 CoreFoundation 0x332b7d48 CFRunLoopRunInMode + 104
9 GraphicsServices 0x3b0b52ea GSEventRunModal + 74
10 UIKit 0x3ab732f8 UIApplicationMain …Run Code Online (Sandbox Code Playgroud) 我有一个能够发送消息的iPhone应用程序.我想在iphone中没有SIM卡时提醒用户.所以我尝试了以下三个功能来检查SIM卡的可用性
Class messageClass = (NSClassFromString(@"MFMessageComposeViewController"));
if([messageClass canSendText]){
// Sim available
NSLog(@"Sim available");
}
else{
//Sim not available
NSLog(@"Sim not available");
}
if([MFMessageComposeViewController canSendText]){
// Sim available
NSLog(@"Sim available");
}
else{
//Sim not available
NSLog(@"Sim not available");
}
if([[UIDevice currentDevice].model isEqualToString:@"iPhone"])
{
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel:123456"]])
{
NSLog(@"Sim available");
}
else
{
NSLog(@"Sim not available");
}
}
Run Code Online (Sandbox Code Playgroud)
我没有使用SIM卡检查过我的iphone,它总是返回@"Sim available".但是,当我打开默认的"消息"应用程序并尝试发送短信时,它会显示警告"未安装SIM卡"...此消息应用程序如何检测SIM卡可用性?
我有一个 SwiftUI/SpriteKit 项目,在其中收到以下错误:
委托删除后更新选择器失败:错误 Domain=NSCocoaErrorDomain Code=4099 “与 pid 88 上名为 com.apple.commcenter.coretelephony.xpc 的服务的连接在此进程中无效。”
该错误似乎与我正在使用的广告框架(InMobi)的集成有关。仅当该框架存在时才会发生。它发生在模拟器和真实设备上。
根据 InMobi文档:
InMobi SDK 使用 iOS WKWebView 呈现 HTML 广告。
我尝试过的:
CoreTelephony.framework到我的项目中。我见过关于这个主题的其他问题(似乎与WKWebView)有关,但“答案”通常建议抑制日志,这样您就不会再看到错误了(笑)。
问题:导致此错误的原因是什么?如何修复它?
谢谢你!
我正在尝试使用以下代码获取用户运营商名称:
CTTelephonyNetworkInfo* info = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier* carrier = info.subscriberCellularProvider;
NSString *mobileCountryCode = carrier.mobileCountryCode;
NSString *carrierName = carrier.carrierName;
NSString *isoCountryCode = carrier.isoCountryCode;
NSString *mobileNetworkCode = carrier.mobileNetworkCode;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试记录时,结果是这样的:
2023-05-22 16:47:39.831078+0700 MotionTrade[7686:985518] carrier name = --
2023-05-22 16:47:39.831260+0700 MotionTrade[7686:985518] mobileCountryCode = 65535
2023-05-22 16:47:39.831342+0700 MotionTrade[7686:985518] mobileNetworkCode = 65535
Run Code Online (Sandbox Code Playgroud)
基本上我已经尝试了每个堆栈溢出答案,但我仍然得到相同的结果,
我在我的iPhone上调试这个,没有使用WiFi,而且我只使用物理SIM卡,而不是电子SIM卡。
谁能告诉我为什么我总是收到“--”?
在我浏览了一下之后,国家代码“65535”这可能表明 SIM 卡已被移除,或者通常目前无法拨打电话。
谁能帮我?为什么会发生这种情况以及如何获得正确的蜂窝提供商名称?
我什至尝试使用以下代码在我的新空白项目中执行此操作:
override func viewDidLoad() {
super.viewDidLoad()
let networkInfo = CTTelephonyNetworkInfo()
let carrierName = networkInfo.serviceSubscriberCellularProviders
dump(carrierName)
}
Run Code Online (Sandbox Code Playgroud)
但我的日志中仍然得到相同的结果:
Optional(["0000000100000001": CTCarrier (0x281275d10) {
Carrier name: [--]
Mobile Country …Run Code Online (Sandbox Code Playgroud) core-telephony ×10
ios ×6
objective-c ×5
iphone ×4
swift ×3
ios7 ×2
callkit ×1
crash ×1
entitlements ×1
inmobi ×1
ios10 ×1
ios4 ×1
ios6 ×1
sprite-kit ×1
swiftui ×1