우선 api 23을 사용하고 있고 android N을 사용하지 않으므로 android.net.conn.CONNECTIVITY_CHANGE가 여전히 작동해야하지만 그렇지 않습니다.연결 변경 수신기가 작동하지 않습니까?
매니페스트 :
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="enis.example.com.connectivitytest">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<receiver android:name="com.connectivitytest.ConnectionChangeReceiver"
android:label="NetworkConnection">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
</application>
</manifest>
ConnectionChangeReceiver 무엇이든지 내가 로그 메시지는 단지 명확하게하기 위해 추가하지만이 로그 캣에 표시되지 않은 더 토스트 메시지가없는
package com.connectivitytest;
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 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_LONG).show();
Log.v("Active Network Type : ", activeNetInfo.getTypeName());
}
if(mobNetInfo != null)
{
Toast.makeText(context, "Mobile Network Type : " + mobNetInfo.getTypeName(), Toast.LENGTH_LONG).show();
} Log.v("Mobile Network Type : ", activeNetInfo.getTypeName());
}
}
어느 한 쪽. 난 다음 코드를 시도 : https://gist.github.com/mjohnsullivan/1fec89187b1274dc256e 를하지만 모두 같은, 오류 없습니다하지만 아무것도 더 토스트 메시지도 내가 수신기를 가진 전체 포인트는 백그라운드에서 일을하는 의미 메시지를
https://stackoverflow.com/a/17181263/115145 – CommonsWare
나는 그것을 어딘가에서 읽었지만 그것을 완전히 이해할 수는 없었다. 수신기를 가지고 있다는 사실은 백그라운드에서 일을하는 것입니다. 이제 전경에서 활동을합니다. 사용할 수있는 네트워크가있을 때 실행해야하는 작업을 제외하고는 다른 것을 필요로하지 않으면 어떻게됩니까? 무엇부터 시작해야할까요? 수신기가 사용 가능한 네트워크에서 수신 대기 한 다음 활동을 실행합니까? 미안하지만 나는 매우 혼란 스럽다. –