【问题标题】:BroadcastReceiver for listening mobile data state用于监听移动数据状态的 BroadcastReceiver
【发布时间】:2012-07-19 07:43:37
【问题描述】:

我使用广播接收器来监听当前的 wifi 状态。 因此它将当前状态设置为切换按钮 (setText) 的文本(已连接、正在连接、已禁用...)。

效果很好!

但现在我想对移动数据状态做同样的事情..

所以我使用 TelephonyManager 来设置接收器:

this.registerReceiver(this.DataStateChangedReceiver,
new IntentFilter(TelephonyManager.ACTION_PHONE_STATE_CHANGED));

然后我从wifi接收器复制代码并编辑它:

private BroadcastReceiver DataStateChangedReceiver
= new BroadcastReceiver()
{

    @Override
       public void onReceive(Context context, Intent intent) 
    {
        // TODO Auto-generated method stub


    int extraDataState = intent.getIntExtra(TelephonyManager.EXTRA_STATE ,
    TelephonyManager.DATA_DISCONNECTED);

    switch(extraDataState){
    case TelephonyManager.DATA_CONNECTED:
        data_toggle.setChecked(true);


     break;

    case TelephonyManager.DATA_DISCONNECTED:
        data_toggle.setChecked(false);


     break;

    case TelephonyManager.DATA_CONNECTING:
        data_toggle.setChecked(true);


     break;

    case TelephonyManager.DATA_SUSPENDED:
        data_toggle.setChecked(true);


     break;

    }
    }
};

应用程序启动,但工具按钮没有任何反应.. TelephonyManager 是错误的方法吗?连接管理器?

我想设置一个 onclicklistener 来打开/关闭移动数据。

如何做到这一点是下一个问题..

【问题讨论】:

标签: java android mobile android-broadcastreceiver


【解决方案1】:

在我的工作中,我使用了 ACTION_SCREEN_ON 和 _OFF 的技巧……所以,技巧就在这样的事情中……你在 Receiver.class 中创建布尔变量,然后在连接状态为改变了......然后在服务(或活动)中,你得到意图的地方做什么......

    private boolean screenOff; 
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
        screenOff = true;
    } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
        screenOff = false;
    }
    Intent i = new Intent(context, InternetService.class);
    i.putExtra("screen_state", screenOff);
    context.startService(i);
}

【讨论】:

  • 谢谢,但我不知道它是否对我有帮助.. 我正在寻找一种类似 wifi 的方法。这里没有人写过例子吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-17
  • 2016-01-18
相关资源
最近更新 更多