Google 드라이브 Android API (GDAA)를 사용하고있어 사용자가 파일 (Google 문서, 스프레드 시트, 이미지, 비디오, 오디오 등)을 드라이브에서 제거하고 앱 서버로 보냅니다.사용자가 Google 드라이브에서 파일을 가져 와서 Android 앱을 통해 내 서버로 전송 (업로드)
나는 GDAA 사용에 관한 웹 및 공식 Google 문서에 대한 몇 가지 자습서를 따라 왔습니다.
은 나뿐만 아니라 다음과 같은 대답을 시도 : Fetching contents of Google Drive file throughFileId
하지만이 역시 작동하지 않습니다. result.getStatus().isSuccess()
은 항상 false
입니다. 이유를 모르겠습니다.
다음은 내 open()
기능입니다 :
private void open() {
DriveFile driveFile = mFileId.asDriveFile();
driveFile.open(mGoogleApiClient, DriveFile.MODE_READ_ONLY, null)
.setResultCallback(driveContentsCallback);
mFileId = null;
}
그리고 그 다음은 내가 result.getStatus().isSuccess()
false
로 얻을 콜백입니다 :
/**
* This is Result result handler of Drive contents.
*/
final ResultCallback<DriveApi.DriveContentsResult> driveContentsCallback =
new ResultCallback<DriveApi.DriveContentsResult>() {
@Override
public void onResult(DriveApi.DriveContentsResult result) {
if (!result.getStatus().isSuccess()) {
return;
}
// Read from the input stream an print to LOGCAT
DriveContents driveContents = result.getDriveContents();
BufferedReader reader = new BufferedReader(new InputStreamReader(driveContents.getInputStream()));
StringBuilder builder = new StringBuilder();
String line;
try {
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} catch (IOException e) {
e.printStackTrace();
}
String contentsAsString = builder.toString();
Log.i("ContentAsString", contentsAsString);
// Close file contents
driveContents.discard(mGoogleApiClient);
}
};
지금은이 코드에 의존하고 들어. Google 스프레드 시트 및 문서 도구를 열 수 있었지만 이미지 및 동영상뿐만 아니라 이미지 및 동영상을 내 앱 서버에 업로드해야합니다 (파일을 여는 것은 필요하지 않습니다). 내가 이것을 달성 할 수있는 방법이 있습니까?
SAF (Storage Access Framework)에 대해 읽었으며 Kitkat 이후 Google 드라이브 파일에 액세스 할 수 있지만 내 앱은 JellyBean 이상에서 실행되는 기기를 지원하므로 GGDA와 함께 가고 있습니다.
아직 REST API를 확인하지 않았습니다. 나는 이것이 올바른 방법으로하고 있는지 또는 내가 원하는 것을 성취 할 수있는 완전히 다른 방법인지 이해하고 싶다. 이것이 올바른 방법이라면 무엇이 잘못 될까요?
도움이 될 것입니다.