Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android接收器动态工作,但不通过清单文件_Android - Fatal编程技术网

Android接收器动态工作,但不通过清单文件

Android接收器动态工作,但不通过清单文件,android,Android,我有一个广播接收器,它在我动态设置它时工作,但在清单文件中声明时不工作 我已经在谷歌上搜索过了,所有的例子都符合我在代码中所做的。我的清单文件中确实有一个活动,所以这不会是问题所在。我尝试过完全指定receiver类名以及使用.MyBroadcastReceiver,但没有任何区别 有人能帮忙吗 这是我的清单文件 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.andr

我有一个广播接收器,它在我动态设置它时工作,但在清单文件中声明时不工作

我已经在谷歌上搜索过了,所有的例子都符合我在代码中所做的。我的清单文件中确实有一个活动,所以这不会是问题所在。我尝试过完全指定receiver类名以及使用.MyBroadcastReceiver,但没有任何区别

有人能帮忙吗

这是我的清单文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mikrodyne.receiverdemo" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <receiver
            android:name="com.mikrodyne.receiverdemo.MyBroadcastReceiver"
            android:enabled="true">
            <intent-filter>
                <action android:name="android.intent.action.HEADSET_PLUG" />
            </intent-filter>
        </receiver>

    </application>

</manifest>
短暂性脑缺血发作
Nisha Miller

如果要从外部获取事件,需要设置
android:exported=“true”

注意:你不能达到这个目的

将其放入您的
AndroidManifest.xml

    <receiver
        android:name="com.mikrodyne.receiverdemo.MyBroadcastReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.HEADSET_PLUG" />
        </intent-filter>
    </receiver>

根据:

您不能通过清单中声明的组件接收此信息,只能通过向显式注册来接收


因此,您想做的是不可能的。

谢谢!我错过了文件的那部分:-(
    <receiver
        android:name="com.mikrodyne.receiverdemo.MyBroadcastReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.HEADSET_PLUG" />
        </intent-filter>
    </receiver>