android - 单击按钮启用和禁用广播接收器

标签 android broadcastreceiver

我想启用和禁用广播接收器以在单击按钮时完成启动。接收器在单击一次按钮之前不应响应。我确实看到了一些类似的问题,但没有一个答案有效..请帮助...

我试过这段代码但没用..

PackageManager pm  = getApplicationContext().getPackageManager();
ComponentName componentName = new ComponentName("mypackage", ".receivername");
pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);

最佳答案

试试这个

b1.setOnClickListener(new View.OnClickListener() {

     @Override
     public void onClick(View v) {
        // TODO Auto-generated method stub

            PackageManager pm  = Re_editActivity.this.getPackageManager();
            ComponentName componentName = new ComponentName(currentActivity.this, name_of_your_receiver.class);
            pm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
                            PackageManager.DONT_KILL_APP);
            Toast.makeText(getApplicationContext(), "activated", Toast.LENGTH_LONG).show();

            }
        });

b2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            PackageManager pm  = Re_editActivity.this.getPackageManager();
            ComponentName componentName = new ComponentName(currentActivity.this, name_of_your_receiver.class);
            pm.setComponentEnabledSetting(componentName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
                            PackageManager.DONT_KILL_APP);
            Toast.makeText(getApplicationContext(), "cancelled", Toast.LENGTH_LONG).show();
        }
    });

这里 button1 用于激活广播接收器,button2 用于停用它 您还需要在 list 文件中注册您的广播接收器并设置

<receiver android:name="name_of_your_receiver" android:enabled="false">
        <intent-filter >                
            <action android:name="android.intent.action.BOOT_COMPLETED"/>                
        </intent-filter>
    </receiver>

关于android - 单击按钮启用和禁用广播接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11289119/

相关文章:

android - 如何在 Android Oreo 中运行隐式广播?

android - 带有关闭通知操作按钮的多重通知

java - 元素不应重复

android - 在 android 上使用 protobuf 将数据发送到 WCF 服务(使用 protobuf.net)

android - 我可以使用变量而不是 mp3 资源 ID 在 android 中播放声音吗

android - TelephonyManager.CALL_STATE_IDLE 多次调用

android - windowMinWidthMajor 和 android :windowMinWidthMajor 有什么区别

android - 使同一屏幕上的 2 个 Android ListViews 具有相同的高度

android - android应用程序可以只有广播接收器和没有 Activity 的服务吗

Android - 传入短信监听器 (ICS)