Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
睡眠模式下的Android互联网连接问题?_Android_Httpwebrequest_Connection_Sleep_Wakelock - Fatal编程技术网

睡眠模式下的Android互联网连接问题?

睡眠模式下的Android互联网连接问题?,android,httpwebrequest,connection,sleep,wakelock,Android,Httpwebrequest,Connection,Sleep,Wakelock,我有一个服务活动和一个线程。问题是当手机进入睡眠模式时,线程不发送http请求,我检查网络状态,如果它不是连接,我会连接它,但我得到“权限拒绝:写入安全设置需要android。权限。写入安全设置”错误。但是我已经在AndroidManifest.xml中放置了权限标记。我也尝试这样做: PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE); PowerManager.WakeLock wl = pm.ne

我有一个服务活动和一个线程。问题是当手机进入睡眠模式时,线程不发送http请求,我检查网络状态,如果它不是连接,我会连接它,但我得到“权限拒绝:写入安全设置需要android。权限。写入安全设置”错误。但是我已经在AndroidManifest.xml中放置了权限标记。我也尝试这样做:

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK , "TAG");
wl.acquire();
但这并不能解决我的问题。手机已进入睡眠模式。这是我的支票网络代码:

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;
    }
}
公共类活动扩展了服务{


请帮助..

即使您的应用程序请求了android.permission。在
AndroidManifest.xml
中写入安全设置,但这并不意味着将在运行时向您的应用程序授予此权限


事实上,要授予此特定权限(
android.permission.WRITE\u SECURE\u SETTINGS
),您的应用程序必须使用系统证书进行签名。通常只有设备供应商可以这样做(对于生产设备).

我不可能吗?我能做什么?我的应用程序不会在睡眠模式下请求?在大多数情况下,你的应用程序无法控制连接。它只能在连接可用或丢失时做出反应。是否在睡眠模式下允许联网是安卓和用户的事。那么为什么我的手机会进入睡眠模式呢?我已经使用了电源管理器和唤醒锁定类。如何允许在睡眠模式下联网?
private Runnable httpThread = new Runnable() {

        public void run() {
//i send http request here
}
}