は、我々はそれがiOSの7で動作するようには思えないアプリからの呼び出しを行う(および発信者IDにiOS 7の代わりにCTCall?
を隠すことができるように
CTCallRef CTCallDial(CFStringRef number);
を使用し、当社の企業向けiOSアプリでAPIが変更されていますそこには?
(これはプライベートAPI呼び出しであり、いつでも変更できることを完全に認識していますが、私はまだ代替案を探しています。悲しいことに、利用可能なプライベートAPI)
は、我々はそれがiOSの7で動作するようには思えないアプリからの呼び出しを行う(および発信者IDにiOS 7の代わりにCTCall?
を隠すことができるように
CTCallRef CTCallDial(CFStringRef number);
を使用し、当社の企業向けiOSアプリでAPIが変更されていますそこには?
(これはプライベートAPI呼び出しであり、いつでも変更できることを完全に認識していますが、私はまだ代替案を探しています。悲しいことに、利用可能なプライベートAPI)
私は2時間後にあなたのポストここにStackOverflowで同じ質問... この機能が欠落していることを、クラスのダンプ(https://github.com/EthanArbuckle/IOS-7-Headers/blob/master/Frameworks/CoreTelephony.framework/CTCall.h)のショー、初めて目に...
TUCallCenter(https://github.com/EthanArbuckle/IOS-7-Headers/blob/master/PrivateFrameworks/TelephonyUtilities.framework/TUCallCenter.h)のヘッダファイルには、 " - (id)dial: (id)arg1 service:(int)arg2 "しかし、sharedInstanceがnullを返すため、TUCallcenterのインスタンスを取得できません。 – ErdyMurphy
私は間違いをしました... sharedInstance doest return nil ... – ErdyMurphy
[TUCallCenter sharedInstance]ダイヤル:@ "123" service:0];私はCTCallDial()と同じ動作をしました – ErdyMurphy
あなたは
[[のUIApplication sharedApplication]を使用することができますopenURL:[NSURL URLWithString:[NSString stringWithFormat:@ "tel:%@"、num]]];
は、しかし、あなたは、コールが
に入る方法かもしれません。@ErdyMurphyが他の答えで言及したように、この方法では制御シーケンスを電話アプリに送信することはできません。発信者IDを隠すために必要なもの – clows
を終了していないに近い通話画面には、実際に私はvualoaithuと同じを試してみましたが、運を持っていないしましたことができます。しかし、私はTUCallCenterオブジェクトの他のメソッドを使用しようとしましたが、うまく動作するように見えます。また
TUCallCenter *callCenter = [TUCallCenter sharedInstance];
if(callCenter) {
NSLog(@"callCenter is created!");
//Working part
if([callCenter inCall]){
NSLog(@"IN CALL"); // when you press answer button and can talk
}else{
NSLog(@"NOT IN CALL"); // other cases
}
}
私が試した次:たとえば次のような方法では動作します
TUPhoneNumber* phoneNumber =
[TUPhoneNumber phoneNumberWithDigits:@"55555555"
countryCode:@"1"];
if(phoneNumber) {
NSLog(@"Phone Number obj = %@",phoneNumber);
NSLog(@"Phone Number = %@",phoneNumber.digits);
NSLog(@"Country Code = %@",phoneNumber.countryCode);
}
[callCenter dial:phoneNumber service:0];
をしかし、私は例外だ:
[TUPhoneNumber長]:認識されていないセレクタがインスタンスに送信し0x14dcefd0
私たちは途中でいるように見えます。誰かが解決策を見つけたら。ここに投稿してください。おかげさまで
com.apple.coretelephony.Calls.allow
資格であなたのアプリに署名する必要があると思います。私はSpringBoardバイナリで見つけました。アップルは新たなライセンスを追加しました。ですから、多くのAPIはAPIなしでは動作しません。 CoreTelephonyのみの場合、SpringBoardには4つのエンタイトルメントがあります。
'com.apple.coretelephony.Calls.allow'が解決策であることを確認できます。この権限がなければ、 'CTCallDial'で電話をかけることはできません。 – creker
私は、SpringBoardServices、SpringBoardFoundation、SpringBoardUI、SpringBoardUIServicesにclass-dumpを使用しました。**しかし、com.apple.coretelephony.Calls.allow **は表示されません。助けてください – vualoaithu
私は 'SpringBoard.app/SpringBoard'バイナリについて話していました。 '/ System/Library/CoreServices/SpringBoard.app/SpringBoard'や' Xcode.app/Content/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.0のiOSシミュレータであなたのデバイスで見つけることができます。 sdk/System/Library/CoreServices/SpringBoard.app/SpringBoard'を実行します。任意のテキストエディタでバイナリを開き、最後までスクロールします。あなたは 'com.apple.coretelephony.Calls.allow'の多くの資格を見つけるでしょう – creker
プライベートObj-C APIを検査するために 'class-dump'または' class-dump-z'をダウンロードしてください。 – Nate