1

電話の状態が変更されたステータスを取得する理由は、Android が 2 つの方法を提供することです。

内容に大きな違いはありますか?または通知方法のみを変更しますか?

TelephonyManager.listen(PhoneStateListener listener, int events) でリスナーを登録し、onCallStateChanged() で状態を処理するか、アクション android.intent.action.PHONE_STATE の BroadcastReceiver を登録し、onReceive() でイベントを処理することができます。

どちらか一方を好む理由と時期は?

4

1 に答える 1

3

アプリケーション内で動作するように思えTelefonyMangerます。自分でインスタンス化しないでください。あなたはそれを使用する必要があります:

Context.getSystemService(Context.TELEPHONY_SERVICE)

これは、アプリケーション内で直接電話をかけたり、電話の他の機能を直接使用したりできるダイヤラ アプリケーションを作成する予定がある場合に便利です。

一方、 を登録すると、アプリケーションがフォアグラウンドにない場合BroadcastReceiverでも電話の状態を知りたいということになります。おそらく、電話の使用状況を追跡するアプリケーションを作成していた場合です。

Android デベロッパーの TelephonyManager

于 2012-05-11T15:20:47.093 に答える