android - POWER 连接和断开的监听器

标签 android broadcastreceiver intentfilter

我正在聆听为我的银河系接通和断开电源的声音。

我创建了 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/

相关文章:

android - 带有 AndroidFragments 的 onSaveInstanceState 上的 NullPointerException

java - 如何从菜单外部访问选项菜单项

android - BroadcastReceiver 问题(接收器未注册错误)

android - 开机启动应用程序完成

android - 用于打开 xls 和 xlsx 文件的 Intent 过滤器

android - 从 parse.com 检索数组并将值添加到本地数组 (Android)

android - 使用 Retrofit 将 JsonArray 转换为 Kotlin 数据类(预期为 BEGIN_OBJECT 但为 BEGIN_ARRAY)

android - onReceive 方法没有被调用

java - 接收或重新发送android收到的广播

android - 如何在收到广播 Intent CONNECTIVITY_CHANGE 后更新小部件