当前位置: 首页 > 面试题库 >

getContentLength()在某些设备而非其他设备上返回-1

魏兴邦
2023-03-14
问题内容

我正在尝试获取文件的大小,然后再下载。我曾经conn.getContentLength();这样做,它在我的家用计算机Android 2.1
Emulator上运行良好。

但是,一旦我从手机(WiFi或3G)运行我的应用程序,该功能将无法使用,而当我从工作笔记本电脑的Android
2.1仿真器中运行该应用程序时,它也将无法使用。

有谁知道解决方法?还有另一种方法可以获取文件的大小,而无需使用HttpURLConnection


问题答案:

此信息并非始终可用。通常,您会知道要下载的文件的长度。根据Web服务器,协议,连接和下载方法的不同,此信息可能并不总是可用。

您绝对应该修改您的应用程序,以便它可以处理这种情况。我认为您会发现使用不同连接方法的不同设备将为此提供不同的结果。



 类似资料:
  • 我试图在我的应用程序中解码AAC编码的文件,并初始化用于初始化我的对象的对象,这是为对象设置变量的代码 我面临的问题是语句为某些设备上的同一文件获取我。该应用程序正在生产中,我在android API级别为17、18和19的处理器设备上看到了这个错误,大多数错误都发生在三星设备上。有什么方向吗?

  • 最近,我们在Android应用程序中增加了对Chromecast的支持,但在对各种移动设备(手机和平板电脑)的扩展测试中,发现在许多移动设备上,Flipps应用程序都没有发现Chromecast。在相同的设备上,我们使用了最新版本的官方Chromecast SDK演示应用程序进行测试,该应用程序从https://github.com/googlecast/castvideo-Android下载(主

  • 我的Android应用程序无法安装在一些“随机”、较旧的API设备上(任何低于API级别25的设备),错误如下: 所以,基本上看起来… API 我见过类似的问题,答案与小写的包名有关。我已经有了。 有人有什么想法吗? 舱单: BTW我用的是Visual Studio 2019和一夫一妻制3.7

  • 和onActivityResult 和错误的堆栈跟踪 stack_trace=java.lang.runtimeException:未能将结果ResultInfo{who=null,request=1,result=-1,data=intent{act=inline-data(havs extras)}}传递到活动{com.madhours/com.madhours.activities.acti

  • 我正试图在后台获取用户位置。在我的手机(htc one m7)上一切都很好,但出于某种原因,它不能在我测试的两个设备上工作:三星galaxy s3索尼Xperia Z1 顺便说一句:我把所有东西都添加到了清单中。

  • 问题内容: 我看到Google Play中与Fabric / Crashlytics相关的崩溃。从正常的Crashlytics更新到新的Fabric Crashlytics之后,发生了这种情况。我只能在其中一台设备(Galaxy S2)上重现它。我拥有的所有其他设备(Nexus 5和S4)都没有崩溃。这是堆栈跟踪: 这是我的build.gradle的内容: 问题答案: 我只是凭直觉就知道了!升级到