java - 尝试使用 kinvey 将图像从 Android 应用程序上传到云

标签 java android android-studio kinvey cloud-storage

我正在尝试将保存在手机内存中、由 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 file: failed to upload file. com.kinvey.java.KinveyException: REASON: No user is currently logged in.

我在 kinvey 的讨论平台和这里也对这个主题进行了很多搜索。但我还是卡住了。我不知道我哪里出了问题或者我可能错过了什么。

如果有人成功通过 kinvey 上传图像,请帮助我。

最佳答案

任何类型的 Kinvey 操作都必须通过登录用户提供。 在开始输入/输出任何信息之前,您必须注册(或登录)。

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

关于java - 尝试使用 kinvey 将图像从 Android 应用程序上传到云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40695283/

相关文章:

java - 从 CharArray 计算数字

java.lang.IllegalMonitorStateException : object not locked by thread before wait() 异常

android - 从后台恢复 Android 应用程序后,它卡住了

Android Studio 查看更改应用于哪些文件

android - Instant Run 执行了完整的构建和安装,因为设备上的安装与磁盘上的本地构建不匹配

java - 如何更改多个按钮的MouseReleaseEvent?

Java:通过键从 Hashmap 获取对象

java - JVM 在 System.exit(1) 后仍然存在

java - 如何从 phonegap android 插件返回数组或其他集合元素类型

java - Android Mediaplayer 播放不同的歌曲