VdiskSDK-Android

微盘Android SDK开发者交流群:240235926

微盘OpenAPI、全平台SDK交流群:134719337, 162285095

运行示例代码

简要描述一下使用Eclipse运行Example的步骤:

请先前往 微盘开发者中心 注册为微盘开发者, 并创建应用;

Clone或下载Github仓库中的VDiskSdk及VDiskSdk_Example两个工程,并导入Eclipse;

确保设置VDiskSdk为VDiskSdk_Example的依赖工程(Library);

进入工程VDiskSdk_Example/com.vdisk.android.example.OAuthActivity,根据应用信息修改常量CONSUMER_KEY(App Key),CONSUMER_SECRET(App Secret),REDIRECT_URL(应用回调地址);

编译并运行工程VDiskSdk_Example。

开发者常见问题FAQ(更新中)

Q:在开发者平台创建应用时,“回调地址”填什么?

A:应用回调地址对“移动客户端”应用来说对用户是不可见的,所以定义为何种形式都将不影响,但是没有定义将无法使用SDK认证登录。建议使用一个可访问的网址,例如 “ http://vdisk.weibo.com/ ”,并在代码中填入对应位置。“白名单”填写类似

Q:为何使用demo上传的文件在微盘官方网站看不到,也无法下载或查看官方网站上的文件和目录?

A:每个应用默认有属于自己的sandbox级的空间。经过特殊授权的应用可以使用basic级的公共空间。某应用自己的sandbox空间只能被本应用访问,其它应用都不能访问。用户空间隔离,申请basic权限请至“微盘开放平台-我的应用-申请basic访问权限”。

Q:SDK是否有重命名文件或目录的功能接口?

A:请使用SDK Example中的移动接口,通过传入带文件名的完整路径,达到重命名目的。

Q&A:如果您对SDK中提供的某个功能API不明确,可查看微盘 Open RESTful API文档

Usage

认证相关

实例化VDiskAuthSession

VDiskAuthSession session;

AppKeyPair appKeyPair = new AppKeyPair(CONSUMER_KEY, CONSUMER_SECRET);

session = VDiskAuthSession.getInstance(this,appKeyPair,AccessType.APP_FOLDER);

使用新浪微博认证登录

WeiboAccessToken weiboToken = new WeiboAccessToken();

weiboToken.mAccessToken = OAuthActivity.WEIBO_ACCESS_TOKEN;

session.enabledAndSetWeiboAccessToken(weiboToken);

session.authorize(OAuthActivity.this, OAuthActivity.this);

使用微盘认证登录

session.setRedirectUrl(REDIRECT_URL);

session.authorize(OAuthActivity.this, OAuthActivity.this);

登陆认证的回调方法

/**

* 认证结束后的回调方法

*

* Callback method after authentication.

*/

@Override

public void onComplete(Bundle values) {

if (values != null) {

AccessToken mToken = (AccessToken) values

.getSerializable(VDiskAuthSession.OAUTH2_TOKEN);

session.finishAuthorize(mToken);

}

startActivity(new Intent(this, VDiskTestActivity.class));

finish();

}

/**

* 认证出错的回调方法

*

* Callback method for authentication errors.

*/

@Override

public void onError(VDiskDialogError error) {

Toast.makeText(getApplicationContext(),

"Auth error : " + error.getMessage(), Toast.LENGTH_LONG).show();

}

/**

* 认证异常的回调方法

*

* Callback method for authentication exceptions.

*/

@Override

public void onVDiskException(VDiskException exception) {

// TODO Auto-generated method stub

Toast.makeText(getApplicationContext(),

"Auth exception : " + exception.getMessage(), Toast.LENGTH_LONG)

.show();

}

/**

* 认证被取消的回调方法

*

* Callback method as authentication is canceled.

*/

@Override

public void onCancel() {

Toast.makeText(getApplicationContext(), "Auth cancel",

Toast.LENGTH_LONG).show();

}

用户信息相关接口

初始化VDiskAPI

VDiskAPI mApi;

mApi = new VDiskAPI(session);

Account account = mApi.accountInfo();

account.quota; //用户微盘总空间

Account.consumed; //用户微盘已使用空间

上传下载模块

小文件上传

UploadRequest mRequest;

mRequest = mApi.putFileOverwriteRequest(path, fis, mFile.length(),

new ProgressListener() {

@Override

public long progressInterval() {

// 在这里设置进度更新间隔,缺省为0.5秒

return super.progressInterval();

}

@Override

public void onProgress(long bytes, long total) {

// 在这里可以处理进度更新

// 参数bytes:当前已完成上传的字节数

// 参数total:总字节数

// 例如 publishProgress(bytes);

}

});

大文件分段上传

ComplexUploadHandler handler = new ComplexUploadHandler(mContext) {

@Override

public void onProgress(long bytes, long total) {

publishProgress(bytes);

}

@Override

public void startedWithStatus(ComplexUploadStatus status) {

switch (status) {

case ComplexUploadStatusLocateHost:

Log.d(TAG, "Getting the nearest host...");

break;

case ComplexUploadStatusCreateFileSHA1:

Log.d(TAG, "Creating the sha1 of file");

break;

case ComplexUploadStatusInitialize:

Log.d(TAG, "Signing each segment of file...");

break;

case ComplexUploadStatusCreateFileMD5s:

Log.d(TAG, "Creating each segment's md5...");

break;

case ComplexUploadStatusUploading:

Log.d(TAG, "Uploading one segment...");

break;

case ComplexUploadStatusMerging:

Log.d(TAG, "File Merging...");

break;

default:

break;

}

}

@Override

public void finishedWithMetadata(Entry metadata) {

Log.d(TAG, "Upload success : " + metadata.fileName());

}

};

mApi.putLargeFileOverwriteRequest(mSrcPath, desPath,

mFile.length(), handler);

文件下载

File file = mApi.createDownloadDirFile(mTargetPath);

try {

mFos = new FileOutputStream(file, true);

} catch (FileNotFoundException e) {

mErrorMsg = "Couldn't create a local file to store the file";

return false;

}

VDiskFileInfo info = mApi.getFile(mPath, null, mFos, file,

new ProgressListener() {

@Override

public long progressInterval() {

// 在这里设置进度更新间隔,缺省为0.5秒

return super.progressInterval();

}

@Override

public void onProgress(long bytes, long total) {

// 在这里可以处理进度更新

// 参数bytes:当前已完成下载的字节数

// 参数total:总字节数

// 例如

mFileLen = total;

publishProgress(bytes);

}

});

文件、目录操作相关接口

下载缩略图

mApi.getThumbnail(path, mFos, ThumbSize.ICON_640x480, null);

获取文件夹下的目录信息

Entry metadata = mApi.metadata(path, null, true, false);

List contents = metadata.contents;

获取文件详细信息

Entry metadata = mApi.metadata(path, null, true, false);

metadata.fileName();// 文件名

metadata.size; // 文件大小

metadata.modified; //文件修改时间

metadata.path;//文件微盘路径

获取文件的历史版本

List contents = mApi.revisions(path, -1);

搜索

List result = mApi.search("/", keyword, -1, false);

获取文件的下载链接

VDiskLink media = mApi.media(path, false);

media.url; // 文件的下载地址

media.expires; // 下载地址的过期时间

获取用户文件和目录的操作变化记录

DeltaPage deltaPage = mApi.delta(cursor);

文件编辑相关接口

复制

Entry metadata = mApi.copy(fromPath, toPath);

新建文件夹

Entry metaData = mApi.createFolder(path);

删除

Entry metaData = mApi.delete(path);

移动

Entry metadata = mApi.move(fromPath, toPath);

还原

Entry metadata = mApi.restore(path, revision);

分享相关接口

分享

String shareLink = mApi.share(path);

取消分享

Entry metaData = mApi.cancelShare(path);

创建拷贝引用

CreatedCopyRef createCopyRef = mApi.createCopyRef(sourcePath);

通过拷贝引用保存到微盘

Entry entry = mApi.addFromCopyRef(sourceCopyRef, targetPath);

根据拷贝引用获取下载链接

VDiskLink link = mApi.getLinkByCopyRef(sourceCopyRef);

git 微盘_GitHub - 123ufo/VdiskSDK-Android: 微盘Android客户端SDK相关推荐

  1. Android 应用开发---Android状态栏微技巧

    Android状态栏微技巧,带你真正理解沉浸式模式 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发起的.因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模 ...

  2. 微PEU盘如何还原成普通U盘

    微PEU盘如何还原成普通U盘 我的电脑---磁盘管理---直接找到三个U盘的区 删除卷 最后会提示格式化,格式化之后,一切ok.

  3. 飘飘微课计算机百度云,数学微课_百度云资源_盘多多如风搜_盘搜搜_哎哟喂啊...

    2010-2021 技术支持:SAP 联系我们:  手机版 本站仅提供盘多多如风搜和盘搜搜以及小说网笔趣阁的资源搜索服务,不存放任何实质内容.如有侵权内容请联系百度云盘或新浪微盘,源资源删除后本站的链 ...

  4. 2G金士顿U盘修复工具迈科微MW6208E/8208_v1.2.0.8

    不知道山寨金士顿U盘在各地有没有区别,我在成都拿到的山寨金士顿2GU盘.使用的是MW6208E(检测出来的不一定准确,我是直接打开U盘看主控芯片型号)的主控. 量产工具识别FALSH为TC58DVG0 ...

  5. 重装系统(制作系统U盘、安装系统、U盘复原、win10、微PE)

    文章目录 重装系统 1.系统盘制作 (1)公共步骤 (2)win10直接写入U盘 (3)win10.IS0文件+微PE 2.正式安装系统 (1)纯净win10系统盘安装 (2)微PE+win10.is ...

  6. 使用U盘重装win10系统(微PE)

    使用U盘重装win10系统(微PE) 准备: 一个8G以上U盘(最好是新的,制作成功会格式化U盘) 下载微PE工具箱 (不要直接安装,要将微PE安装到U盘) 注意: 这里如果原本格式是FAT32要改成 ...

  7. 超微服务器主板bios装系统,超微 bios设置,小编教你超微主板bios怎么设置U盘启动...

    超微主板,它具有支持最新的硬件设备,提供丰富的支持行业标准的外形特征尺寸,促使超微产品维持其设计出为国际领先的广泛应用的先进主板.所以在很多额的电脑里都有它的身影,那么该怎么去设置超微主板biosU盘 ...

  8. 超微服务器如何用u盘装系统,超微主板怎么设置u盘启动,教您超微主板怎么设置u盘启动...

    如今电脑玩热衷的事情莫过于DIY,自己动手装机和排除故障.BIOS的设置.优化.升级.重装系统,也是玩家热衷的玩技.而使用U盘安装系统就为最综合,最著名的代表,那么超微主板怎么设置u盘启动呢?下面,小 ...

  9. 超微服务器主板bios装系统,超微 bios设置,手把手教你超微主板bios怎么设置U盘启动...

    对电脑有了解的用户就知道,AMI BIOS也是在电脑中非常普及的一种BIOS,全名American Megatrends,Inc,是世界上有名的三大BIOS之一.主要以开机速度快捷而闻名,主要用于台式 ...

  10. 联想微型计算机boot,联想AIO520C微边框一体机台式电脑bios设置u盘启动教程

    联想AIO520C微边框一体机台式电脑bios设置u盘启动教程是一款超级好用的一体机电脑,作为联想旗下非常高端的一款一体办公商用计算机,其办公的性能可以说是非常的有用,而且在使用的时候,用户们偶尔会遇 ...

最新文章

  1. Linux多任务编程之五:exit()和_exit()函数(转)
  2. 芝加哥大学24岁华人学霸遇害后,父母赶赴美国,妈妈发表讲话让人泪目...
  3. Python 数据类型
  4. 从最新财报中,我看到京东“四面楚歌”
  5. 复旦大学女教授告诉你:朋友是什么?
  6. 智能电视系列(4)-高通,天才与极限
  7. 目标检测技术演化:从R-CNN到Faster R-CNN
  8. 小区移动基站安全吗?会杀人于无形吗?
  9. 开发者批评苹果商店佣金过高,库克将面临立法者质疑;花呗接入央行征信;GitHub 发布更新| 极客头条
  10. 如何防范和应对Redis勒索,腾讯云教你出招
  11. 深入理解javascript内部原理(2): 变量对象(Variable object)
  12. python爬虫案例_Python“豆瓣电影TOP250爬虫案例”详解
  13. 通过chrome的拓展程序访问其他网页
  14. PhysioBank简介
  15. JS Enter键实现Tab键功能,回车键实现tab功能
  16. t检验临界值表中的n是什么_t检验临界值表
  17. 抖音网上如何赚钱变现,有哪些具体的方法
  18. 【Linux】 - Linux中查看命令文档的命令
  19. 电脑如何设置定时任务、定时执行 —— 不用Windows任务计划程序,也能轻松设定计划任务、定时任务 —— 定时执行专家
  20. 日常水文章之Linux+arm+阿里IOT sdk+Cmake

热门文章

  1. CF468A 24 Game
  2. 数组模拟栈解决括号匹配
  3. vue-loader was used without the corresponding plugin. Make sure to include VueLoad……
  4. actions vuex 请求_vuex中actions请求的数据提交给mutations,组件中获取到参数如何根据参数操作下面...
  5. win10文件后缀名怎么显示_显示文件类型扩展名图文教程,win电脑系统文件修改后缀名方法...
  6. python集合操作班级干部竞选演讲稿_【热门】竞选班干部演讲稿集合8篇
  7. matlab四宫格画图_科学网—Matlab画图(一):生成高质量的供发表和展示用的图 - 周建锋的博文...
  8. oracle 8i漏洞渗透,IT新聞-Oracle 8i及多米諾服務器有安全漏洞
  9. jdk安装目录 usr java_Mac查看已安装的jdk版本和jdk安装目录
  10. python turtle graphics自动关闭_解决Pycharm调用Turtle时 窗口一闪而过的问题