【问题标题】:Android Google changeListenerAndroid 谷歌更改监听器
【发布时间】:2015-03-17 13:46:08
【问题描述】:

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

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

The import com.google.android.gms.drive.events.DriveEvent.ChangeListener cannot be resolved

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

我改成

The import com.google.android.gms.drive.events.ChangeListener

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

Listener cannot be resolved to a type

-

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

-

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

【问题讨论】:

    标签: android google-play-services changelistener


    【解决方案1】:

    我正在使用此代码:

    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() 已经过时了。

    【讨论】:

      猜你喜欢
      • 2021-08-22
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2019-06-16
      • 1970-01-01
      • 1970-01-01
      • 2019-02-09
      相关资源
      最近更新 更多