zoukankan      html  css  js  c++  java
  • android 上传文件到百度云

    http://blog.csdn.net/mathewsking/article/details/12620083


    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();


  • 相关阅读:
    闭包
    值类型和引用类型的区别?
    计算机基础知识和基本操作
    Git常用命令
    任务八
    CSS任务七
    CSS任务六
    MySql+EF6,不能选实体框架6.x或者闪退
    以一定的格式生成最新的数据库流水号
    layui父窗体获取弹出窗体元素
  • 原文地址:https://www.cnblogs.com/yeyong/p/3906377.html
Copyright © 2011-2022 走看看