まず第一に私はapi 23を使用しています。アンドロイド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());
}
}
そこにはトーストメッセージが私はちょうど明確にするログメッセージを追加一切ありませんが、それはlogcatに表示されませんでしたどちらか。 私も次のコードを試してみました:https://gist.github.com/mjohnsullivan/1fec89187b1274dc256e を私は受信機を持っていることの全体のポイントは、バックグラウンドで物事を行うことであることを意味し、それはすべて同じ、エラーませんが、何も起こりません、何トーストメッセージやメッセージ
https://stackoverflow.com/a/17181263/115145 – CommonsWare
私はどこかで読んだが、私はそれを完全に理解できませんでした。私は受信機を持っていることのすべてのポイントは、バックグラウンドで物事を行うことであり、今は前景で活動を実行することですか?利用可能なネットワークが存在するときに実行すべきタスク以外の何かが必要ない場合はどうすればよいですか?まずはアクティビティに何を書きますか?どのように動作するのですか?レシーバはネットワーク上でリッスンしてから利用できますか?申し訳ありませんが、私は非常に混乱しています。 –