我的自定义BroadcastReceiver在API级别16以上无法正常工作

时间:2019-02-16 18:51:30

标签: android

我正在做我的大学项目,即家长控制应用程序。为此,我创建了一个自定义接收器。我已经在软糖,kitkat,棒棒糖,棉花糖,naughat,oreo中测试了该应用程序。但这仅适用于软糖和奇巧。我尝试阅读stackoverflow中的所有解决方案。请给我解决方案!

manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.nizam.training.parentalcontrol">
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />


<application
    android:fullBackupContent="false"
    android:allowBackup="true"
    android:icon="@mipmap/m"
    android:label="@string/app_name"
    android:logo="@mipmap/ico"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <service
        android:name=".BlockService"
        android:enabled="true"
        android:exported="true"/>

    <activity android:name=".AppSettingActivity">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
        </intent-filter>
    </activity>
    <activity
        android:name=".BlockActivity"
        android:theme="@style/Theme.AppCompat.Light.NoActionBar" />
    <activity
        android:name=".MainActivity"
        android:theme="@style/Theme.AppCompat.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".LoginActivity"
        android:label="Login"
        android:theme="@style/MyTheme" />
    <activity
        android:name=".SignupActivity"
        android:label="Create Pin"
        android:theme="@style/MyTheme" />
    <activity
        android:name=".TaskList"
        android:label="Tasks"
        android:theme="@style/AppTheme">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
        </intent-filter>
    </activity>

    <receiver
        android:name=".MyReceiver"
        android:enabled="true"
        android:exported="true"
        android:permission=""
        tools:ignore="ExportedReceiver">
        <intent-filter>
            <action android:name="StartupReceiver_Manual_Start" />
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </receiver>
    <receiver android:name=".CheckRunningApplicationReceiver" />
</application></manifest>

在TaskListActivity.java中调用broabcast

getApplicationContext.sendBroadcast(new Intent("StartupReceiver_Manual_Start"))

LogCat

http://mnktalktech.blogspot.com/2019/02/logcat-for-parentalcontrol.html

3 个答案:

答案 0 :(得分:0)

我发现了这个;这可能是问题的一部分。您遇到任何错误吗?

GET_TASKS Permission Deprecated

答案 1 :(得分:0)

请尝试这个。

<receiver
        android:name=".MyReceiver"
        android:enabled="true"
        android:exported="false"
        >
        <intent-filter>
            <action android:name="StartupReceiver_Manual_Start"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </receiver>

让我知道。

答案 2 :(得分:0)

在此问题上度过一个星期后,我找到了解决方案。 我之前放的东西(不起作用)...

getApplicationContext.sendBroadcast(new Intent("StartupReceiver_Manual_Start"))

现在我刚刚改变了。

MyReceiver mr=new MyReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("StarctupReceiver_Manual_Start");
registerReceiver(mr,intentFilter);
getBaseContext().getApplicationContext().sendBroadcast(new Intent("StarctupReceiver_Manual_Start"));

我不知道为什么它起作用,但是它起作用。如果有人知道原因,请发表评论。感谢所有尝试解决此问题的人。