2

サービスアクティビティとスレッドがあります。問題は、電話がスリープモードになり、スレッドが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
}
}

助けてください..

4

1 に答える 1

2

アプリケーションがで要求されたとしてもandroid.permission.WRITE_SECURE_SETTINGSAndroidManifest.xml実行時にこのアクセス許可がアプリケーションに付与されることを意味するわけではありません。

実際、この特定の許可(android.permission.WRITE_SECURE_SETTINGS)を付与するには、アプリケーションにシステム証明書で署名する必要があります。そして、通常、デバイスのベンダーのみがそれを実行できます(実稼働デバイスの場合)。

于 2011-08-11T08:21:52.607 に答える