WebDAV开源库
实现WebDaAV的开源库有:
-
lookfirst/sardine(https://github.com/lookfirst/sardine)
据说使用的HttpClient和安卓部分依赖有些冲突,所以这里不使用。 -
thegrizzlylabs/sardine-android(https://github.com/thegrizzlylabs/sardine-android)
源于lookfirst/sardine,这里使用这个。
增加WebDAV
增加库
文件app/build.gradle中增加
implementation 'com.thegrizzlylabs.sardine-android:sardine-android:0.7'
依赖以及权限设置
因为涉及到网络,所以需要在AndroidManifest.xml中设置联网权限
<uses-permission android:name="android.permission.INTERNET" />
安卓9.0以上的网络安全策略,需要单独配置。
在res目录下新建文件xml/network_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
文件AndroidManifest.xml的application标签中增加属性
android:networkSecurityConfig="@xml/network_config"
API
所有方法都必须在新线程中进行,且对UI的直接操作要放回主线程进行,可以考虑使用Handler。
创建客户端
Sardine sardine = new OkHttpSardine();
sardine.setCredentials("username", "password")