2016-11-19 5 views
1

私の電話の内部メモリに保存された画像をアップロードしようとしています。アンドロイドアプリでクラウドサービスにクリックして、Kinveyを使用しています。しかし、私はいくつかの問題に直面しています。kinveyを使用してandroidアプリからcloudに画像をアップロードしようとしています

アップロード部分を含むコードを実行するたびに、例外が発生します。私は ".png"タイプの画像をアップロードしています。 BLOBへの変換は、Google Cloud Platformとは異なり、必要なプロセスではありません。 ping呼び出しが私に正常な応答、アップロードの一部は私にエラーを与えているを与えているが、

`Client mKinveyClient = new Client.Builder(APP_KEY, SECRET_KEY, this.getApplicationContext()).build(); 
    mKinveyClient.enableDebugLogging(); 

    mKinveyClient.ping(new KinveyPingCallback() { 
     public void onFailure(Throwable t) { 
      Log.e(TAG, "Kinvey Ping Failed", t); 
     } 
     public void onSuccess(Boolean b) { 

      Log.d(TAG, "Kinvey Ping Success"); 
     } 
    }); 

    java.io.File file = new java.io.File(Environment.getExternalStorageDirectory().getPath() + "/Camera/" + "IMG_20161115_193353.jpg"); 

    mKinveyClient.file().upload(file, new UploaderProgressListener() { 
      public void onSuccess(Void result) { 
      Log.i(TAG, "successfully upload file"); 
     } 

     @Override 
     public void onSuccess(FileMetaData fileMetaData) { 
       Log.i(TAG, "successfully uploaded file"); 
      } 
     @Override 
     public void onFailure(Throwable error) { 
      Log.e(TAG, "failed to upload file.", error); 
      } 
     @Override 
     public void progressChanged(MediaHttpUploader uploader) throws IOException { 
      Log.i(TAG, "upload progress: " + uploader.getUploadState());      // all updates to UI widgets need to be done on the UI thread 
      } 
     });` 

今 -

は、ここに私の.javaコードです。

E /アクティビティファイル:ファイルのアップロードに失敗しました。 com.kinvey.java.KinveyException: 理由:。どのユーザーが現在ログインされていない

は、私もここにkinveyの議論プラットフォーム上で、このトピックに関する多くのことを検索しました。しかし、私はまだ立ち往生しています。私はどこが間違っているのか分からないのか分からない。

もし誰かがkinveyで画像をアップロードできたら、助けてください。

答えて

0

Kinveyの操作は、ログインしたユーザーから行う必要があります。 i/oを開始する前にサインアップ(またはログイン)する必要があります。

mKinveyClient.user().create("username", "password", new KinveyUserCallback()) { 
    @Override 
    public void onFailure(Throwable t) { 
     CharSequence text = "Could not sign up."; 
     Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show(); 
    } 
    @Override 
    public void onSuccess(User u) { 
     //here we go on uploading file 
    } 
}); 

あなたははい、すべてのアプリケーションの動作がアクティブなユーザーコンテキストを必要とするユーザーhere

関連する問題