android – Broadcastreceiver获取ServiceState信息

有谁知道在
android中获取电话服务状态(IN_SERVICE,OUT_OF_SERVICE,EMERGENCY_ONLY,POWER_OFF)的方法.

我希望有一个广播记录来识别这些变化,但我找不到任何东西.我知道有一个听众,但我不确定如何使用我的应用程序,因为它使用WakefulIntentService(通过thecommonsguy)作为服务运行.

有了类似电池电量的东西(即BATTERY_LOW,BATTERY_OKAY),这很容易,但我无法解决类似的电话服务变化问题.

最佳答案 注册接收器

public static final String ACTION_SERVICE_STATE_CHANGED = "android.intent.action.SERVICE_STATE";

当你对你的接收器有意图时,只需使用android源码下面的小黑客

public void onReceive(Context context, Intent intent) {
    int state = intent.getExtras().getInt("state");
    if(state == ServiceState.STATE_IN_SERVICE)
    {
        //Do whatever you want
    }
    }

检查服务状态类的来源
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.5_r4/android/telephony/ServiceState.java#ServiceState.setFromNotifierBundle%28android.os.Bundle%29

点赞