1

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

アップロード部分を含むコードを実行するたびに、例外が発生します。「.png」タイプの画像をアップロードしています。Google Cloud Platform とは異なり、blob への変換は必要なプロセスではありません。

ここに私の.Javaコードがあります -

`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
            }
        });`

現在、ping 呼び出しは正常な応答を返していますが、アップロード部分でエラーが返されています。

E/Activity ファイル: ファイルのアップロードに失敗しました。com.kinvey.java.KinveyException: 理由: 現在ログインしているユーザーはいません。

このトピック、kinvey のディスカッション プラットフォーム、およびここでも多くのことを検索しました。しかし、私はまだ立ち往生しています。どこが間違っているのか、何が欠けているのかわかりません。

kinvey を介して画像をアップロードすることに成功した人がいる場合は、私を助けてください。

4

2 に答える 2

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

ユーザーの詳細については、こちらをご覧ください

于 2016-11-19T19:03:46.353 に答える
0

シャルミスタ、

はい、すべてのアプリ アクションにはアクティブなユーザー コンテキストが必要です。そのため、アプリにログインしてからファイルをアップロードする必要があります。

以下をご覧ください: http://devcenter.kinvey.com/android/guides/users#ActiveUser http://devcenter.kinvey.com/android/guides/files#Uploading

ありがとう、プラナフ・キンベイ

于 2016-11-21T05:17:26.200 に答える