サービスアクティビティとスレッドがあります。問題は、電話がスリープモードになり、スレッドがhttpリクエストを送信しないことです。接続されていない場合はネットワークの状態を確認し、接続しますが、「アクセス許可の拒否:安全な設定への書き込みにはandroid.permission.WRITE_SECURE_SETTINGS」エラーが発生します。しかし、私はすでにAndroidManifest.xmlにパーミッションタグを入れています。私もこれを試してみます:
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK , "TAG");
wl.acquire();
しかし、それは私の問題を解決しません。電話すでにスリープモードになっています。これが私のcheckNetworkコードです:
private boolean checkNetwork(){
try{
Context context = getApplicationContext();
ConnectivityManager connectivity = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectivity.getActiveNetworkInfo();
if(info == null){
connectivity.setNetworkPreference(ConnectivityManager.TYPE_MOBILE);
int status = connectivity.startUsingNetworkFeature(ConnectivityManager.TYPE_MOBILE, "cmwap");
NetworkInfo info1 = connectivity.getActiveNetworkInfo();
return false;
}
if (info.getState() == NetworkInfo.State.CONNECTED )
return true;
return false;
}catch(Exception ex){
return false;
}
}
パブリッククラスMainActivityはServiceを拡張します{....。
private Runnable httpThread = new Runnable() {
public void run() {
//i send http request here
}
}
助けてください..