首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓谷歌changeListener

安卓谷歌changeListener
EN

Stack Overflow用户
提问于 2015-03-17 21:46:08
回答 1查看 446关注 0票数 0

我正在尝试运行Android Google Drive。我使用的是github示例代码Android Demos。

我已经将google play服务添加到我的项目中。这是我得到的错误:

代码语言:javascript
复制
The import com.google.android.gms.drive.events.DriveEvent.ChangeListener cannot be resolved

阅读此页面后(Error com.google.android.gms.drive.DriveApi.DriveContentsResult cannot be resolved)

我把它改成

代码语言:javascript
复制
The import com.google.android.gms.drive.events.ChangeListener

但是,错误仍然存在于这两种方法中:

代码语言:javascript
复制
Listener cannot be resolved to a type

-

代码语言:javascript
复制
private void toggle() {
        if (mSelectedFileId == null) {
            return;
        }
        synchronized (mSubscriptionStatusLock) {
            DriveFile file = Drive.DriveApi.getFile(getGoogleApiClient(),
                    mSelectedFileId);
            if (!isSubscribed) {
                Log.d(TAG, "Starting to listen to the file changes.");
                file.addChangeListener(getGoogleApiClient(), changeListener);//error
                isSubscribed = true;
            } else {
                Log.d(TAG, "Stopping to listen to the file changes.");
                file.removeChangeListener(getGoogleApiClient(), changeListener);//error
                isSubscribed = false;
            }
        }
        refresh();
    }

-

代码语言:javascript
复制
final private Listener<ChangeEvent> changeListener = new Listener<ChangeEvent>() {//error
    @Override
    public void onEvent(ChangeEvent event) {
        mLogTextView.setText(String.format("File change event: %s", event));
    }
};

在这个问题上,有人能给我一些启发吗?

Github代码https://github.com/googledrive/android-demos

EN

回答 1

Stack Overflow用户

发布于 2016-03-04 21:56:29

我使用的是以下代码:

代码语言:javascript
复制
import com.google.android.gms.common.api.PendingResult;
import com.google.android.gms.common.api.ResultCallback;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.drive.Drive;
import com.google.android.gms.drive.DriveApi;
import com.google.android.gms.drive.DriveResource;
import com.google.android.gms.drive.events.ChangeEvent;
import com.google.android.gms.drive.events.ChangeListener;

PendingResult<DriveApi.DriveIdResult> pendingResult = Drive.DriveApi.fetchDriveId(mGoogleApiClient, id);
    pendingResult.setResultCallback(new ResultCallback<DriveApi.DriveIdResult>() {
        @Override
        public void onResult(@NonNull DriveApi.DriveIdResult driveIdResult) {
            if (!driveIdResult.getStatus().isSuccess()) {
                Log.d(TAG, String.format("fetch drive id error: %s", driveIdResult.getStatus().getStatusMessage()));
                return;
            }
            mCurrentDriveId = driveIdResult.getDriveId();
            DriveResource resource = mCurrentDriveId.asDriveResource();
            Log.d(TAG, "received driveid from id");

            PendingResult<Status> pendingChange = resource.addChangeListener(mGoogleApiClient, new ChangeListener() {
                @Override
                public void onChange(ChangeEvent changeEvent) {
                    onResourceChange(changeEvent);
                }
            });
            pendingChange.setResultCallback(new ResultCallback<Status>() {
                @Override
                public void onResult(@NonNull Status status) {
                    if (status.isSuccess()) {
                        Log.d(TAG, "change listener success");
                    } else {
                        Log.d(TAG, String.format("change listener error: %s", status.getStatusMessage()));
                    }
                }
            });
        }
    });

但看起来这些变化并不是很实时。无论如何,getFile()已经过时了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29100709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档