我正在聆听为我的银河系接通和断开电源的声音。
我创建了 2 个 BroadCastReceivers,一个用于连接,一个用于断开连接。
当我尝试实现时,即使断开电源线,我也只能获取连接的数据。
Intent 已发送,但看起来是错误的。
这是 Activity 代码:
// Handle Power On
PowerConnectedBCReceiver myPowerConnectedBCReceiver = new PowerConnectedBCReceiver();
IntentFilter intentPowerOnFilter = new IntentFilter();
intentPowerOnFilter.addAction("android.intent.action.ACTION_POWER_CONNECTED");
registerReceiver(myPowerConnectedBCReceiver, intentPowerOnFilter);
BroadcastReceiver PowerConnectedReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
showToast("connected");
}
};
// Handle Power Off
PowerConnectedBCReceiver myPowerDisonnectedBCReceiver = new PowerConnectedBCReceiver();
IntentFilter intentPowerDisconnectedOnFilter = new IntentFilter();
intentPowerDisconnectedOnFilter.addAction("android.intent.action.ACTION_POWER_DISCONNECTED");
registerReceiver(myPowerDisonnectedBCReceiver, intentPowerDisconnectedOnFilter);
BroadcastReceiver PowerDisconnectedReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
showToast("disconnected");
}
};
注册两个 BC 来完成工作
registerReceiver(PowerDisconnectedReceiver, new IntentFilter("com.neglected.POWER_DISCONNECTED"));
registerReceiver(PowerConnectedReceiver, new IntentFilter("com.neglected.POWER_CONNECTED"));
广播连接代码:
public class PowerConnectedBCReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Toast.makeText(context, "Phone was connected to power" , Toast.LENGTH_LONG).show();
Intent tIntent = new Intent("com.neglected.POWER_CONNECTED");
context.sendBroadcast(tIntent);
}
}
广播断开代码:
public class PowerDisconnectedBCReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Toast.makeText(context, "Phone was disconnected from power" , Toast.LENGTH_LONG).show();
Intent tIntent = new Intent("com.neglected.POWER_DISCONNECTED");
context.sendBroadcast(tIntent);
}
}
密码错了吗? 我可以听两个 Action 吗?分开? 我看不到通过 CONNNECTED 操作发送的额外信息,是吗?
最佳答案
不确定您的最后两个类(class) (*BCReeivers) 应该做什么。您的第一段代码看起来不错。如果重要的话,它将被限制在封闭 Activity 的生命周期内。
对于 Galaxy S,您可能无法依赖这些 Intent。特别是,我发现 Verizon Fascinate(他们的 Galaxy S 版本)有很多问题。看这里:http://devblog.bu.mp/how-to-ddos-yourself
关于android - POWER 连接和断开的监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499174/