2012-05-11 6 views
1

なぜ電話状態の状態を変更するのか、アンドロイドは2つの方法を提供します:android.intent.action.PHONE_STATEアクションを持つBroadcastReceiverと、PhoneStateListenerでTelephonyManagerを使用しますか?電話の状態を聞いて、2つの異なった方法:BroadcastReceiverとTelephonyManager

内容には大きな違いがありますか?通知方法のみを変更することはできますか?

I)は、(TelephonyManager.listen(PhoneStateListenerリスナー、int型のイベント)でリスナーを登録し、onCallStateChanged(状態を扱う)、あるいはアクションandroid.intent.action.PHONE_STATEのためのBroadcastReceiverを登録し、onReceiveでイベントを扱うことができます。

なぜ、どちらか一方の方が好きなのはなぜですか?

答えて

3

TelefonyMangerはアプリケーション内で動作するようです。 自分でインスタンス化しないようにしてください。あなたが直接電話をかけることができたり、アプリケーション内で直接に

を電話の他の機能を使用するダイヤラアプリケーションを作ることに計画している場合に便利と思われる

Context.getSystemService(Context.TELEPHONY_SERVICE) 

: あなたはでそれを使用する必要があります一方、BroadcastReceiverを登録した場合は、アプリケーションがフォアグラウンドにないときにという電話状態について知りたいことを意味します。携帯電話の使用状況を追跡していたアプリケーションを作成していた可能性があります。

TelephonyManager on Android Developers

関連する問題