我正在尝试编写一个应用程序,允许我通过 wifi 连接到我的奥林巴斯相机,并使用它的内置服务器从中提取我的原始图像。我的问题是,当我使用相机的 wifi 时,downloadManager 似乎不起作用,只有当我将手机连接到网络时才起作用。我在这里遗漏了什么,还是这个工具真的不适合这个任务?
我的下载管理器:
public void getImage(String imageName, Context context) {
File file = new File(Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString(), imageName);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse("http://192.168.0.10/DCIM/100OLYMP/" + imageName))
.setTitle(imageName + ": OlyRaw Image")
.setDescription("Downloading")
.setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DCIM, imageName)
.setAllowedOverMetered(true)
.setRequiresCharging(false)
.addRequestHeader("user-agent", "OlympusCameraKit")
.addRequestHeader("host", "192.168.0.10")
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
Log.d("Response", "http://192.168.0.10/DCIM/100OLYMP/" + imageName);
DownloadManager downloadManager = (DownloadManager) context.getSystemService(DOWNLOAD_SERVICE);
try{
downloadId = downloadManager.enqueue(request);
Log.d("Response", String.valueOf(downloadId));
}
catch (Exception e) {
Log.d("Response", e.toString());
}
}
我有同样的问题:一旦我使用手机作为热点,DownloadManager 就无法工作。我收到下载失败通知,但没有任何其他信息。 注册的BroadcastReceiver的onReceive方法中的intent get中没有任何内容。 如果这 2 台设备都连接到我家的 WIFI,我的工作就会非常顺利......