【问题标题】:CONNECTIVITY_ACTION Broadcast receiver not workingCONNECTIVITY_ACTION 广播接收器不工作
【发布时间】:2020-02-22 09:57:38
【问题描述】:

这是我的广播接收器。我已经添加了所有需要的详细信息,但仍然无法正常工作

 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent; 
 import android.net.ConnectivityManager;
 import android.net.NetworkInfo;
 import android.util.Log;
 import android.widget.Toast;

public class myBroadCastReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, final Intent intent) {
    ConnectivityManager connectivityManager = 
    (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE );
    NetworkInfo activeNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
    boolean isConnected = activeNetInfo != null && activeNetInfo.isConnectedOrConnecting();
    if (isConnected)
        Log.i("NET", "Connected" + isConnected);
    else
        Log.i("NET", "Not Connected" + isConnected);
     }
 }

和清单文件一样,我已经添加了所需的所有详细信息,但仍然无法正常工作

<?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.example.mybroadcastreceiver">

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    tools:ignore="GoogleAppIndexingWarning">
    <receiver android:name=".myBroadCastReceiver" android:enabled="true">
        <intent-filter>

            <action android:name="android.net.conn.CONNECTIVITY_CHANGE"></action>
        </intent-filter>

     </receiver>

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

我已经解决了所有问题,但这不起作用,知道可能缺少什么,我没有对 MainActivity.java 进行更改,这可能是原因吗?

【问题讨论】:

    标签: java android broadcastreceiver android-wifi


    【解决方案1】:

    面向 Android 7.0 及更高版本的应用必须使用 Context.registerReceiver(BroadcastReceiver, IntentFilter) 注册 CONNECTIVITY_ACTION 广播。 (source)

    您不能在清单中注册它,因为这样每次用户的连接发生变化时,您的应用都会唤醒,这对性能和电池寿命都很不利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-03
      • 2012-11-14
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多