如何显示 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("");
}
}
}
我是 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("");
}
}
}