相关疑难解决方法(0)

在Android Pie上延迟的DownloadManager请求

我一直在使用DownloadManager API在一个应用程序中处理下载大约3年.最近我在Android Pie上有一些用户抱怨有时下载会在实际启动之前停留几分钟,从而影响用户体验:他们中的一些人不得不重新安装应用程序以使其正常工作,其他一些用户随着时间的推移自行修复问题.请注意,我没有设置任何特殊设置的DownloadManager.Request实例(例如allowedNetworkTypes,setRequiresCharging...).

我对这个问题的理解是,在开始之前,请求会长时间陷入挂起暂停状态.没有注意到SDK 28中引入的任何重大更改,尽管它并不重要,因为我的目标是API级别27.

有没有人经历过类似的事情并提出了一些解决方法?谢谢

android android-download-manager android-9.0-pie

8
推荐指数
1
解决办法
4011
查看次数

下载管理器返回的Android 9.0下载失败

我正在使用下载管理器从互联网下载文件。下载已在Android 6、8.1中成功完成,但在Android 9.0中未成功完成

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription("Downloading...");
request.setTitle(nameOfFile);
request.setMimeType("application/pdf");
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS + "/CPG", nameOfFile);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
queueId = manager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

android android-download-manager android-9.0-pie

6
推荐指数
2
解决办法
1999
查看次数

NetworkSecurityConfig:未使用平台默认值指定网络安全配置

我正在尝试连接到这些地方之一并获取JSON数据:-

https://content.guardianapis.com/search?q=debate&tag=politics/politics&from-date=2014-01-01&api-key=test
https://content.guardianapis.com/search?q=debates&api-key=test
https://content.guardianapis.com/search?api-key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)

我可以通过浏览器访问所有这三个,但是当我尝试通过Android应用访问它们时,出现以下错误:

NetworkSecurityConfig: No Network Security Config specified, using platform default
Error response code: 400
Run Code Online (Sandbox Code Playgroud)

我已将此添加到manifest.xml:-

<uses-permission android:name="android.permission.INTERNET"/>
Run Code Online (Sandbox Code Playgroud)

我还将此添加到manifest.xml:

android:networkSecurityConfig="@xml/network_security_config"
Run Code Online (Sandbox Code Playgroud)

并创建了res / xml / network_security_config.xml,其中包含:-

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">content.guardianapis.com</domain>>
    </domain-config>
Run Code Online (Sandbox Code Playgroud)

将错误更改为:

D/NetworkSecurityConfig: Using Network Security Config from resource network_security_config debugBuild: true
Error response code: 400
Run Code Online (Sandbox Code Playgroud)

我知道它不见了:

<trust-anchors>
    <certificates src="@raw/my_ca"/>
</trust-anchors>
Run Code Online (Sandbox Code Playgroud)

但我不知道证书在哪里或在什么地方,是否需要它。

不太确定发生了什么,将不胜感激。

另外:-我可以很好地连接并从此URL获取JSON:-

https://earthquake.usgs.gov/fdsnws/event/1/query?format=geojson&eventtype=earthquake&orderby=time&minmag=6&limit=10
Run Code Online (Sandbox Code Playgroud)

我所得到的是:

No Network Security Config specified, using platform default
Run Code Online (Sandbox Code Playgroud)

购买不是错误400,而是获得200。因此,这让我觉得有些奇怪的事情正在发生,但不确定在哪里。

java networking android asp.net-web-api

5
推荐指数
2
解决办法
1万
查看次数

当从没有互联网的WLAN请求下载时,下载无法在Android 9上开始

我正在研究一个Android应用,该应用使用WiFi连接到本地Flask服务器。然后,该应用程序显示存储在服务器(RPi3)上的图像。单击图像会触发下载请求,我希望Android DownloadManager将请求加入队列并下载图像。 WiFi网络不提供互联网访问。

到目前为止,我已经能够在Android 6和Android 8.1设备上对其进行测试,并且一切正常。在多个Android 9设备上进行测试后,下载未开始,但是从本地网络断开连接后,将显示失败的尝试。

阅读有关此内容的其他主题,我尝试了以下方法:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

并添加在AndroidManifest.xml中

android:networkSecurityConfig="@xml/network_security_config"
Run Code Online (Sandbox Code Playgroud)
.setRequiresCharging(false)
.setAllowedOverMetered(false)
.setAllowedOverRoaming(false)
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, (String) url);
Run Code Online (Sandbox Code Playgroud)
  • 再次检查权限。这些已启用:
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

这是我创建的下载请求

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url))
        .setTitle("Some Title") …
Run Code Online (Sandbox Code Playgroud)

android wifi flask android-download-manager android-9.0-pie

5
推荐指数
1
解决办法
440
查看次数

使用Android Pie时下载失败,错误400

我一直在生产应用程序中使用DownloadManager,没有问题,但是现在在Android Pie(API 28)中失败。请注意,下载被标记为失败并返回错误400。

@Override
public void onReceive(Context context, Intent intent) {
    long reference = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
    DownloadManager.Query query = new DownloadManager.Query();
    query.setFilterById(reference);
    DownloadManager downloadManager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
    Cursor cursor = downloadManager.query(query);
    cursor.moveToFirst();
    int statusIndex = cursor.getColumnIndex(DownloadManager.COLUMN_STATUS);
    int status = cursor.getInt(statusIndex);

    if (status == DownloadManager.STATUS_SUCCESSFUL) {
        int fileUriIndex = cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI);
        String savedFileUri = cursor.getString(fileUriIndex);

        ParcelFileDescriptor pfd = null;
        try {
            pfd = context.getContentResolver().openFileDescriptor(Uri.parse(savedFileUri), "r");
            PamplonaParkingXMLParser pamplonaParkingXMLParser = new PamplonaParkingXMLParser();
            ParkingList parkingList = pamplonaParkingXMLParser.parse(pfd);
            ObservableObject.getInstance().updateValue(parkingList);
            if (pfd != null) {
                pfd.close();
            } …
Run Code Online (Sandbox Code Playgroud)

android android-download-manager android-9.0-pie

3
推荐指数
1
解决办法
451
查看次数