1

为什么要获取手机状态更改状态,android 提供了两种方式:BroadcastReceiver 与 action android.intent.action.PHONE_STATE,以及使用 TelephonyManager 与 PhoneStateListener ?

内容有本质区别?还是只改变通知方式?

我可以使用 TelephonyManager.listen(PhoneStateListener listener, int events) 注册一个侦听器并在 onCallStateChanged() 中处理状态,或者为操作 android.intent.action.PHONE_STATE 注册一个 BroadcastReceiver 并在 onReceive() 中处理事件。

为什么以及何时更喜欢一种或另一种方式?

4

1 回答 1

3

在我看来,这TelefonyManger适用于应用程序。确保不要自己实例化它。你应该使用它:

Context.getSystemService(Context.TELEPHONY_SERVICE)

如果您计划制作一个可以直接拨打电话或直接在您的应用程序中使用电话的其他功能的拨号器应用程序,这似乎很有用

另一方面,如果您注册 a ,这意味着即使您的应用程序不在前台,BroadcastReceiver您也想知道手机状态。如果您正在制作一个跟踪电话使用情况的应用程序,则可能是这样。

Android 开发人员上的 TelephonyManager

于 2012-05-11T15:20:47.093 回答