Android用百度云上传文件

这篇博客详细介绍了如何在Android应用中使用百度云SDK进行文件上传。首先需要在百度云创建应用并获取API Key和Secret Key,然后在Android项目中引入SDK库,并通过API Key进行用户登录。在成功获取访问令牌后,使用SDK提供的API上传文件到指定目录。在上传过程中,可以监听上传进度并展示给用户。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.先在百度云申请账号

2.创建应用,可以创建多个,不同的应用有不同的应用ID,API Key,Secret Key

3.API管理-API列表里开启PCS API,同时创建文件目录

建立android项目,将SDK中lib的JAR包拷到项目的libs文件夹下

代码里先用APIKEY登录

BaiduOAuth oauthClient = new BaiduOAuth();
  oauthClient.startOAuth(this, mbApiKey, new String[]{"basic", "netdisk"}, new BaiduOAuth.OAuthListener() {
   @Override
   public void onException(String msg) {
    Toast.makeText(getApplicationContext(), "Login failed " + msg, Toast.LENGTH_SHORT).show();
   }
   @Override
   public void onComplete(BaiduOAuthResponse response) {
    if(null != response){
     mbOauth = response.getAccessToken();
     Toast.makeText(getApplicationContext(), "Token: " + mbOauth + "    User name:" + response.getUserName(), Toast.LENGTH_SHORT).show();
    }
   }
   @Override
   public void onCancel() {
    Toast.makeText(getApplicationContext(), "Login cancelled", Toast.LENGTH_SHORT).show();
   }
  });

上传的时候mbRootPath=“/apps/mybst”  mybst是开启PCS API时创建的文件目录名

     if(null != mbOauth){

      Thread workThread = new Thread(new Runnable(){
    public void run() {
     
     String tmpFile = "/storage/sdcard0/zzzz.jpg";
    // String tmpFile = "/mnt/sdcard/DCIM/File/1.txt";
     
        BaiduPCSClient api = new BaiduPCSClient();
        api.setAccessToken(mbOauth);
        
        final BaiduPCSActionInfo.PCSFileInfoResponse response = api.uploadFile(tmpFile, mbRootPath + "/zzz.jpg", new BaiduPCSStatusListener(){

      @Override
      public void onProgress(long bytes, long total) {
       // TODO Auto-generated method stub
       
       
       final long bs = bytes;
       final long tl = total;

          mbUiThreadHandler.post(new Runnable(){
           public void run(){
            Toast.makeText(getApplicationContext(), "total: " + tl + "    sent:" + bs, Toast.LENGTH_SHORT).show();
           }
          });      
      }
      
      @Override
      public long progressInterval(){
       return 1000;
      }
        });
        
        mbUiThreadHandler.post(new Runnable(){
         public void run(){
          Toast.makeText(getApplicationContext(), response.status.errorCode + "  " + response.status.message + "  " + response.commonFileInfo.blockList, Toast.LENGTH_SHORT).show();
         }
        }); 
    }
   });
   
      workThread.start();

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值