私は自分の放送受信機に問題があります。BroadcastReceiverにインターネットアクセスがありません
私は午前6時にアラームを設定しました。インターネットからデータをダウンロードして処理するだけのブロードキャストレシーバーを起動する必要があります。
アラームを3pmに設定すると、正常に動作します。しかし問題は午前6時です。ネットワークに接続できないためダウンロードできません。
ダウンロードを試行する前に部分的なスリープ解除ロックを実行します。これに関連することができますか?電話が深い睡眠に入り、部分的な起床ロックでは不十分ですか?
それ以外に何ができますか?私はネットワークデータを有効にして電話を離れるように二度チェックしました。夜間にメールとwhatsappを受け取ります。
アンドロイドにその接続を回復させる方法はありますか?
ヒントやヘルプは大歓迎です!
お勧めします、 フェデリコ。
マイコード:BroadcastReceiverから
OnReceive方法:
@Override
public void onReceive(Context context, Intent intent) {
...
// acquire partial wake lock
_PowerManager.acquire();
// check internet access
if (!_Utils.isDataEnabled()){
// here is where it enters at 6am, isDataEnabled return false, so it enters here
_Log.d("_BroadcastReceiver_Synchronize:onReceive","No internet, cancel sinc");
// release partial wake lock
_PowerManager.release();
return;
}
// excecute async task that downloads data
_WebServicesGet ws = new _WebServicesGet(null, null, null);
ws.syncAll(this, false);
return;
}
が_Utils.isDataEnabled:
public static Boolean isDataEnabled() {
// this method returns false at 6am
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
マニフェストでインターネット許可を設定しましたか? – Gonzalo
https://developer.android.com/training/monitoring-device-state/doze-standby.html – CommonsWare
Gonzaloありがとうございます。はい、私のアプリはインターネットのアクセス許可を持っています。 –