public class Information extends BroadcastReceiver{
public static String ChangeDate;
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
android.net.NetworkInfo wifi = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
android.net.NetworkInfo mobile = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (wifi.isAvailable() || mobile.isAvailable()) {
Toast.makeText(context, "Internet Available", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "Internet not Available", Toast.LENGTH_SHORT).show();
RahuActivity.nextAlaram();
}
}
}
マニフェスト.xml
<receiver android:name="com.astrobix.service.Information" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
</intent-filter>
</receiver>
モバイルでこのコードを実行すると、両方のトーストメソッドが表示されます。最初に Wi-Fi をオフにすると、インターネットが利用可能というメッセージが表示され、インターネットが利用できないというメッセージが再び表示されます。RahuActivity.nextAlaram()
1 つのメッセージのみを表示する必要があります。そのため、例外が表示されると思います。
Logcat here :-
08-02 16:25:54.309: E/AndroidRuntime(21170): java.lang.RuntimeException: Unable to start receiver com.astrobix.service.Information: java.lang.NullPointerException