如何显示 Activity 上是否插入了充电器 in/out?

How to show if charger is plugged in/out on an Activity?

我是 android 的新手。如果插入或拔出充电器,我想在 activity 中更改 textview 的文本。为此,我在清单中注册了一个接收器,意图 android.intent.action.ACTION_POWER_CONNECTED android.intent.action.ACTION_POWER_DISCONNECTED

接收者代码如下:

public class PowerConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

    if(intent.getAction() == Intent.ACTION_POWER_CONNECTED) {
        //Handle power connected
        Log.e("Charger State","power connected");
        Toast.makeText(context, "Charger PluggedIn", Toast.LENGTH_SHORT).show();
    } else if(intent.getAction() == Intent.ACTION_POWER_DISCONNECTED){
        //Handle power disconnected
        Log.e("Charger State","power disconnected");
        Toast.makeText(context, "Charger PluggedOut", Toast.LENGTH_SHORT).show();
    }

   }
}

这一切正常,但我想在插入或拔下充电器时在 activity 上显示它。请帮助我完成任务。

谢谢~

有很多方法可以将数据从广播接收器传递到 Activity

最好的方法是使用公交车

compile 'org.greenrobot:eventbus:3.0.0'

//Some Class
public class MessageEvent {
   public final String message;

public MessageEvent(String message) {
    this.message = message;
   }
}

//In Activity
@Override
  public void onStart() {
  super.onStart();
  EventBus.getDefault().register(this);
}

@Override
 public void onStop() {
 EventBus.getDefault().unregister(this);
 super.onStop();
}

//From Broadcast Receiver
//Add this in the Connected and Disconnected methods 
EventBus.getDefault().post(new MessageEvent("Hello everyone!"));

就这样写你在activity中使用的代码

public class MyActivity extends Activity{

 TextView mTextView;
 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mTextView =(TextView) findViewById(R.id.text);

}

 public class PowerConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {

    if(intent.getAction() == Intent.ACTION_POWER_CONNECTED) {
        //Handle power connected
        Log.e("Charger State","power connected");
        mTextView.setText("Charger PluggedIn");
        Toast.makeText(context, "Charger PluggedIn", Toast.LENGTH_SHORT).show();
    } else if(intent.getAction() == Intent.ACTION_POWER_DISCONNECTED){
        //Handle power disconnected
        Log.e("Charger State","power disconnected");
        mTextView.setText("Charger PluggedOut");
        Toast.makeText(context, "Charger PluggedOut", Toast.LENGTH_SHORT).show();
    }else{
      mTextView.setText("");
     }

   }
}