这是我的代码:
dm = (DownloadManager) this.getSystemService(this.DOWNLOAD_SERVICE);
// Display the Downloads pending status (YES/NO):
try {
c = dm.query(new DownloadManager.Query().setFilterByStatus(
DownloadManager.STATUS_RUNNING | DownloadManager.STATUS_PAUSED |
DownloadManager.STATUS_SUCCESSFUL | DownloadManager.STATUS_PENDING
));
if(c.moveToFirst()) {
Toast.makeText(this, "Count is > 0", Toast.LENGTH_LONG).show(); //Test
downloadStat.setText("YES");
downloadStat.setTextColor(getResources().getColor(colorAccent, getTheme()));
c.close();
}
else{
Toast.makeText(this,"Count is 0", Toast.LENGTH_LONG).show(); //Test
downloadStat.setText("NO");
downloadStat.setTextColor(getResources().getColor(colorGreen, getTheme()));
}
}
catch(NullPointerException e){
Log.e("CURSOR ERROR", "ERRORS");
e.printStackTrace();
if (!c.moveToFirst()) { // i.e. if cursor is null
Toast.makeText(this,"Count is 0", Toast.LENGTH_LONG).show(); //Test
downloadStat.setText("NO");
downloadStat.setTextColor(getResources().getColor(colorGreen, getTheme()));
}
// For handling Wifi connectivity:
wm = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
wm.disconnect();
c.close();
}
finally {
c.close();
}
downloadStat
是一个TextView,如果有任何下载暂停/正在运行/暂停,则显示“是”或“否”。
问题: query()方法每次都返回null,无论是否有活动下载,这反过来使得游标在moveToFirst()上返回false(使用Log.i()检查),从而错误地显示下载状态为“NO”。
我还有一个问题, - 我确实意识到有一个WifiManager使用我们可以处理我们的设备Wifi的连接状态,但有没有办法实现相同的移动网络? 启用/禁用移动网络连接?
感谢任何帮助,谢谢。