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


  • 相关阅读:
    Java学习之IO之File类一
    Java学习之二分查找算法
    Java学习之国际化程序
    Java学习之自定义异常
    Java学习之开篇—个人随想
    pl/sql 的 put和put_line区别
    Java中static、final用法
    一个包含所有c++的头文件的头文件
    Codeforces Round #379 (Div. 2)
    hdu-5977 Garden of Eden(树分治)
  • 原文地址:https://www.cnblogs.com/yeyong/p/3906377.html
Copyright © 2011-2022 走看看