2
我有一个服务活动,并在其中一个线程。问题是当手机进入睡眠模式,线程不发送http请求我检查网络状态,如果它没有连接我工作连接它,但我得到“权限拒绝:写入安全设置需要android.permission.WRITE_SECURE_SETTINGS”错误。但我已经把权限标签放在AndroidManifest.xml中。我也试试这个:Android的网络连接问题?
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扩展服务{ .....
private Runnable httpThread = new Runnable() {
public void run() {
//i send http request here
}
}
请帮助..
所以是不可能给我吗?我能做什么?我的应用程序不需要睡眠模式_? –
在最一般的情况下你的应用程序无法控制连接。它只能在连接可用或丢失时作出反应。这是Android和用户的业务,允许在睡眠模式下进行联网。 – inazaruk
那么为什么我的手机进入睡眠模式?我已经使用电源管理器和唤醒锁类。我如何让睡眠模式的网络? –