我正在尝试运行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));
}
};在这个问题上,有人能给我一些启发吗?
发布于 2016-03-04 21:56:29
我使用的是以下代码:
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()已经过时了。
https://stackoverflow.com/questions/29100709
复制相似问题