gpt4 book ai didi

android - 在 android 中安排文件上传的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-29 01:17:19 24 4
gpt4 key购买 nike

我正在开发一个应用程序,我在其中拍摄一些照片和一些信息,然后将整体上传到服务器。我正在上传文件以响应按钮单击,但只有在互联网工作正常时才会发生。所以我想安排日期上传任务,以防万一互联网无法正常工作,并且希望在设备连接到互联网后立即将其自动上传到服务器。

我已经通过了 JobScheduler API,但问题是它不支持低于 5.0(API 21)的 Android 设备,我的要求是将此应用程序构建到 API 17。因此需要您的建议和任何相同的 API .

提前致谢!

最佳答案

您是否研究过使用 ConnectivityManager 来监控 Monitoring the Connectivity Status ?您可以在 wifi 可用时收到广播事件并恢复/开始上传。

From the Android Docs:

确定您是否有互联网连接

ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork != null &&
activeNetwork.isConnectedOrConnecting();

确定您的互联网连接类型

boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;

监控连接变化

每当连接细节发生变化时,ConnectivityManager 广播 CONNECTIVITY_ACTION ("android.net.conn.CONNECTIVITY_CHANGE") Action 。您可以在您的 list 中注册一个广播接收器来监听这些变化并相应地恢复(或暂停)您的后台更新。

<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>

设备连接的更改可能非常频繁 - 每次您在移动数据和 Wi-Fi 之间切换时都会触发此广播。因此,最好仅在您之前暂停更新或下载以恢复它们时才监视此广播。通常在开始更新之前检查 Internet 连接就足够了,如果没有,则暂停进一步的更新,直到连接恢复。

此技术需要切换您在 list 中声明的​​广播接收器,这将在下一课中介绍。

这是另一个很好的资源:

http://www.grokkingandroid.com/android-getting-notified-of-connectivity-changes/

关于android - 在 android 中安排文件上传的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38795523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com