【问题标题】:Listen for Phone State changed, two different way: BroadcastReceiver and TelephonyManager监听电话状态改变,两种不同的方式:BroadcastReceiver 和 TelephonyManager
【发布时间】:2012-05-11 15:03:56
【问题描述】:

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

内容有很大不同吗?还是只改变通知方式?

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

为什么以及何时偏爱其中一种方式?

【问题讨论】:

    标签: android


    【解决方案1】:

    在我看来TelefonyManger 在应用程序中工作。 确保不要自己实例化它。 你应该使用它:

    Context.getSystemService(Context.TELEPHONY_SERVICE)
    

    如果您打算制作一个拨号器应用程序,该应用程序可以直接拨打电话或直接在您的应用程序中使用电话的其他功能

    ,这似乎很有用

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

    TelephonyManager on Android Developers

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多