0

アプリケーションでインターネットに接続しているかどうかを確認したい。私はブロードキャストレシーバーを使用しています。接続が失われた場合、DB SQLite のエントリを変更し、毎分別のスレッドで htpp 要求を行うサービスを停止したいと考えています。Log.i に何も表示されません。DB を更新しようとしたり、サービスを停止しようとすると、アプリケーションがクラッシュし、logcat にエラー メッセージが表示されず、例外もありません。

public class InternetConnection extends BroadcastReceiver {

private AccountBDD accountBdd;

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

    ConnectivityManager connectivityManager = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
    if (networkInfo != null) {
        State networkState = networkInfo.getState();
        if (networkState.compareTo(State.CONNECTED) == 0)
            Log.i("INTERNET CONNEC", "connection retrieved");
        Toast.makeText(context, "RETRIEVED CONNECTION ", Toast.LENGTH_LONG)
                .show();
    }

    Toast.makeText(context, "CONNECTION LOST", Toast.LENGTH_LONG).show();
    Log.i("INTERNET CONNEC", "loss of connection");

    // context.stopService(new Intent(context, PeriodicSync.class));
    // accountBdd.updateSyncUtility(syncUtility);
    // Log.i(" Value ", " offlineWork = "
    // + accountBdd.getSyncUtility().getOfflineWork());
}
} 

マニフェスト:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android"
android:versionCode="1"
android:versionName="1.0">

<uses-sdk android:minSdkVersion="13" />

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


<application
    android:label="@string/app_banner" 
    android:name="SQLiteApplication">

    <service android:name="PeriodicSync" /> 

    <receiver android:enabled="true" android:name="com.android.InternetConnection">
     <intent-filter>
         <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
     </intent-filter>
 </receiver>


</application>

誰にもアイデアはありますか?どうも

4

0 に答える 0