2012-03-21 7 views
1

私は厳密に概念を証明しているアプリを開発中です。私がする必要があるのは、ダイヤルされた現在の番号を取得することです。私はCoreTelephonyフレームワークのドキュメントをチェックし、CTCallという2つのプロパティ(callIDとcallState)を公開するクラスを持っています。したがって、コール状態の変化(例えば、番号がダイヤルされたとき、コールが接続されたときなど)を検出することができますが、callIDはまったく役に立たないようです。電話番号にアクセスする

この情報にアクセスする別の方法は知っていますか?プライベートAPIもうまくいき、jailbrokenメソッドもあります。私が取り組んでいることは厳密に概念の証明です。

ありがとうございます。

答えて

0

脱獄電話ログを検索する脱獄方法は、直接データベースファイルを照会しています。このexampleをご覧ください。

iOS 5では、サンドボックスアプリケーションにはこのファイルの読み取り権限がありません。手動でアプリケーションに署名してシステムのアプリケーションフォルダにコピーする方法(脱獄のみ)があります。

件名の詳細については、this questionをご覧ください。

+0

返信いただきありがとうございますfbernardo。残念ながら、あなたのリンクに記載されている方法は、iOS 5.0以降では機能しません。 – cybervedaa

+0

@cybervedaa私は自分の答えを更新しました。 – fbernardo

1

現在のダイヤル番号を取得する別の方法が見つかりました。以下はコードです。

NSString *path = @"/var/mobile/Library/Preferences/com.apple.mobilephone.plist"; 
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path]; 
NSMutableString *number = [NSString stringWithFormat:@"%@", [dict valueForKey:@"DialerSavedNumber"]]; 

制限事項:それは数がリンクをクリックしてダイヤルした場合は、ダイヤルされた番号を拾うか、それが更新ムービーリストから、あるいはcontacts.Itから番号をクリックしてダイヤルした場合の数であった場合のみ動作しません。ダイヤラーでダイヤルします。

+0

この方法は機能していません。iOS 6.1.3で辞書のヌルを取得しています。何か助けてください。 –