gpt4 book ai didi

android - 需要 Google Drive 示例演示方面的帮助

转载 作者:行者123 更新时间:2023-11-29 21:11:49 25 4
gpt4 key购买 nike

对 Java、Android Dev 和 Android Studio 完全陌生 - 我有些挣扎。

我想创建一个应用程序,我可以在其中选择 Google 云端硬盘中的文件夹。查看该文件夹中的照片并选择我想要的照片(多选)。

然后我想获取这些照片的云端硬盘元数据 - 例如照片的链接,并能够循环浏览每张照片并执行另一项 Activity (例如,通过电子邮件发送这些照片)。

这是示例演示:

https://github.com/googledrive/android-demos/blob/master/src/com/google/android/gms/drive/sample/demo/PickFolderWithOpenerActivity.java

我使用 PickFolderWithOpenerActivity 作为第一个 Activity ,它允许我选择一个文件夹(尽管文件夹内容是灰色的)。

当我选择一个文件夹时,它会填充文件夹 driveId(来自示例):

 showMessage("Selected folder's ID: " + driveId);

下一步 - 我假设我需要调用另一个 Activity ,例如ListFilesInFolderActivity.java.

我假设需要使用 Intent 调用此 Activity 。

问题:

  1. 如何将 driveId 传递给 ListFilesInFolderActivity?
  2. 假设上述工作正常,我如何使文件(多个)可选择?

在 BaseActivity.java 中 - 有一个静态字符串:

public static final String EXISTING_FOLDER_ID = "0B2EEtIjPUdX6MERsWlYxN3J6RU0";

所以在 PickFolderActvity 中,我尝试使用以下内容覆盖它:

           showMessage("Selected folder's ID: " + driveId);
EXISTING_FOLDER_ID = driveId.toString();

Intent intent = new Intent(this, ListFilesActivity.class);
startActivity(intent);

但是应用程序崩溃了。请注意,我似乎无法使用模拟器,这与 Google Play 服务有关。我必须生成一个 apk 并传输到我的设备。

在此感谢您的帮助,感谢初学者的耐心等待。

这是来自 PickFolderWithOpenerActivity 的代码,[编辑] 我修改了代码,它现在可以工作,并且调用了 ListFilesInFolder.java。但是这些文件没有列在 ListView 中。我不确定为什么。:

public class PickFolderWithOpenerActivity extends BaseActivity {

private static final String TAG = "PickFolderWithOpenerActivity";

private static final int REQUEST_CODE_OPENER = 1;

@Override
public void onConnected(Bundle connectionHint) {
super.onConnected(connectionHint);
IntentSender intentSender = Drive.DriveApi
.newOpenFileActivityBuilder()
.setMimeType(new String[] { DriveFolder.MIME_TYPE })
.build(getGoogleApiClient());
try {
startIntentSenderForResult(
intentSender, REQUEST_CODE_OPENER, null, 0, 0, 0);
} catch (SendIntentException e) {
Log.w(TAG, "Unable to send intent", e);
}
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case REQUEST_CODE_OPENER:
if (resultCode == RESULT_OK) {
DriveId driveId = (DriveId) data.getParcelableExtra(
OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID);
showMessage("Selected folder's ID: " + driveId);
EXISTING_FOLDER_ID = driveId.getResourceId();

Intent intent = new Intent(this, ListFilesInFolderActivity.class);
startActivity(intent);


}
finish();
break;
default:
super.onActivityResult(requestCode, resultCode, data);
break;
}
}
}

最佳答案

似乎当我将 driveID 传递给 ListFilesInFolder.java 时,它是不正确的。

我应该传递 resourceID。

这是 PickFolderWithOpenerActivity.java 中更正后的代码:

EXISTING_FOLDER_ID = driveId.getResourceId();

Intent intent = new Intent(this, ListFilesInFolderActivity.class);
startActivity(intent);

这现在可以工作了,代码调用了 ListFilesInFolderActivity。但它不会列出 ListView 中的文件。我会为此打开一个单独的问题!

关于android - 需要 Google Drive 示例演示方面的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22530251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com