Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.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
Java 连接事件接收器不';行不通_Java_Android - Fatal编程技术网

Java 连接事件接收器不';行不通

Java 连接事件接收器不';行不通,java,android,Java,Android,我想收听连接更改,并按如下方式进行了尝试: 显示 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- ....... --> <receiver android:name="<packagename>.ConnectionReceiver"> <intent-filter>

我想收听连接更改,并按如下方式进行了尝试:

显示

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

<!-- ....... -->

<receiver
        android:name="<packagename>.ConnectionReceiver">
        <intent-filter>
            <action android:name="ConnectivityManager.CONNECTIVITY_ACTION" />
        </intent-filter>
 </receiver>
不幸的是,当我打开和关闭WiFi连接时,它似乎没有被呼叫


这里有什么问题,我错过了什么吗?

你可以试试这样的东西:

在“manifest”下的AndroidManifest.xml中


那是什么动作?尝试使用android.net.conn.CONNECTIVITY\u更改操作谢谢,你说得对。但不幸的是,上面的接收器只被呼叫了一次,虽然我打开和关闭了大约15次WiFi。谢谢,但很抱歉,我看不出这里有什么不同。这和我做的不一样吗?我的问题是onReceive方法只被调用一次,我认为您的Receiver类(它肯定比我的;)无法解决这个问题。这个问题发生在Hi ceran之前,当互联网连接中断或状态改变时,android会抛出广播。你只需要收听广播,所以你不必每次都去查看。嗨,拉尔斯,谢谢。这正是我想要做的,我认为我的方法应该做到这一点,但当我打开和关闭几次Wi-Fi连接时,它只接收一次广播。Hi-ceran,仔细看看这个页面:特别是在应用程序中注册广播接收器。我已经知道这个页面,但是作者在活动中注册了接收器,但我不需要任何gui组件。
public class ConnectionReceiver extends BroadcastReceiver {

private static final String TAG = "ConnectionReceiver";

@Override
public void onReceive(Context context, Intent intent) {

    Log.i(TAG, "Connection changed");

        }
}
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<receiver android:name="com.blackboard.androidtest.receiver.ConnectionChangeReceiver"           android:label="NetworkConnection">  
<intent-filter> 
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>      
</receiver>
    public class ConnectionChangeReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
        NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
        if (activeNetInfo != null) {
            Toast.makeText(context, "Active Network Type : " + activeNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
        }
        if (mobNetInfo != null) {
            Toast.makeText(context, "Mobile Network Type : " + mobNetInfo.getTypeName(), Toast.LENGTH_SHORT).show();
        }
    }
}