- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Drive QuickStart 应用示例不适用于 Android (https://developers.google.com/drive/quickstart-android)。
我有一台运行 Android 4.1.2 的 Note 2。我遵循了教程中的所有步骤(使用 eclipse + ADT + google 控制台)并花费了 30 多个小时。
以下行中有一个“ClassNotFoundException”:文件 file = service.files().insert(body, mediaContent).execute();
我发现异常发生在Drive.Files.Insert.execute()部分。
有没有人能让这个相机应用程序正常工作?我看了这个应用程序的视频教程,甚至开发者都说这个应用程序只是“可能会起作用”......
互联网上是否有经确认有效的 Drive SDK 应用程序?我只想从谷歌驱动器下载一个简单的谷歌电子表格。
我尝试过的其他事情:- Google 提供的 DrEdit 示例应用程序也无法与 Google Drive 正确同步。- 我在 Google 文档列表 API 网站上也找不到可用的示例应用程序。
我相信从 Android 访问 Google Drive 应该是一个简单的任务,附带一个示例...否则,人们还不如使用 DropBox。
谢谢!
最佳答案
当我在寻找如何从 Drive 打开单个电子表格时,我使用了相同的 QuickStart 应用程序,并且我使用的是 Eclipse Juno、Windows 7、64 位。我看了两个视频,第二个是 Integerate with the Android Drive App
我使用了两者中的步骤,尤其是在我的 list xml 中。我不得不两次观看视频以确保我掌握了所有步骤。我必须将用户功能添加到我的 list 中。
<uses-feature android:name="android.hardware.camera" />
我还发现了其他一些东西。我根本无法在模拟器上运行它。在 Debug模式下在手机上运行它最初也不起作用,它可以访问手机的 SD 卡(很明显)。我将 APK 复制到手机上并安装了它,确保您的安全设置是宽松的。当没有通过 ADB 绑定(bind)时,它可以在我的手机 (Jellybean Droid Razr) 上运行。
这是我的大部分 list 。请注意,您必须从 API 控制台将“YOURCLIENTID”替换为您的。我只使用了第一组数字,“-”之后什么也没有,即 123456789-blah,blah。只是 123456789。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.birdsall.tda"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.hardware.camera" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:uiOptions="splitActionBarWhenNarrow"
android:exported="true" >
<meta-data android:name="com.google.android.apps.drive.APP_ID" android:value="id=YOURCLIENTID" />
<intent-filter>
<action android:name="com.google.android.apps.drive.DRIVE_OPEN" />
<data android:mimeType="application/vnd.google-apps.drive-sdk.YOURCLIENTID" />
<data android:mimeType="image/png" />
<data android:mimeType="image/jpeg" />
<data android:mimeType="image/jpg" />
</intent-filter>
<meta-data
android:name="android.app.default_searchable"
android:value=".ActivitySearch" />
<activity
android:name="com.birdsall.tda.ActivityMain"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ActivityTakePhoto" >
</activity>
<provider
android:name="com.birdsall.tda.TDAProvider"
android:authorities="com.birdsall.tda.contentprovidertda"
android:exported="true"
android:readPermission="true"
android:writePermission="true" />
<activity
android:name=".ActivitySearch"
android:label="Rule Search"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
</application>
</manifest>
我想我只更改了事件的类名,否则我不必更改任何 java 代码。这是我的事件:
package com.birdsall.tda;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import android.accounts.AccountManager;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.widget.Toast;
import com.google.api.client.extensions.android.http.AndroidHttp;
import com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential;
import com.google.api.client.googleapis.extensions.android.gms.auth.UserRecoverableAuthIOException;
import com.google.api.client.http.FileContent;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
import com.google.api.services.drive.model.File;
public class ActivityTakePhoto extends Activity {
static final int REQUEST_ACCOUNT_PICKER = 1;
static final int REQUEST_AUTHORIZATION = 2;
static final int CAPTURE_IMAGE = 3;
private static Uri fileUri;
private static Drive service;
private GoogleAccountCredential credential;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
credential = GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE);
startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
}
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
switch (requestCode) {
case REQUEST_ACCOUNT_PICKER:
if (resultCode == RESULT_OK && data != null && data.getExtras() != null) {
String accountName = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
if (accountName != null) {
credential.setSelectedAccountName(accountName);
service = getDriveService(credential);
startCameraIntent();
}
}
break;
case REQUEST_AUTHORIZATION:
if (resultCode == Activity.RESULT_OK) {
saveFileToDrive();
} else {
startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
}
break;
case CAPTURE_IMAGE:
if (resultCode == Activity.RESULT_OK) {
saveFileToDrive();
}
}
}
private void startCameraIntent() {
String mediaStorageDir = Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES).getPath();
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
fileUri = Uri.fromFile(new java.io.File(mediaStorageDir + java.io.File.separator + "BCM_IMG_"
+ timeStamp + ".jpg"));
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(cameraIntent, CAPTURE_IMAGE);
}
private void saveFileToDrive() {
Thread t = new Thread(new Runnable() {
@Override
public void run() {
try {
// File's binary content
java.io.File fileContent = new java.io.File(fileUri.getPath());
FileContent mediaContent = new FileContent("image/jpeg", fileContent);
// File's metadata.
File body = new File();
body.setTitle(fileContent.getName());
body.setMimeType("image/jpeg");
File file = service.files().insert(body, mediaContent).execute();
if (file != null) {
showToast("Photo uploaded: " + file.getTitle());
startCameraIntent();
}
} catch (UserRecoverableAuthIOException e) {
startActivityForResult(e.getIntent(), REQUEST_AUTHORIZATION);
} catch (IOException e) {
e.printStackTrace();
}
}
});
t.start();
}
private Drive getDriveService(GoogleAccountCredential credential) {
return new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential)
.build();
}
public void showToast(final String toast) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), toast, Toast.LENGTH_LONG).show();
}
});
}
}
希望这对您有所帮助。
关于google-drive-api - 谷歌云端硬盘 SDK : Drive QuickStart App example doesn't work on Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15790750/
我是 Docker 和 Hadoop 系统的新手。我已经在 Ubuntu 16.04 中安装了 Docker,并在一个新的 Docker 容器中运行来自 Cloudera 的 Hadoop 镜像。但是
我正在尝试使用电子邮件和密码使用 Firebase 身份验证的示例代码: EmailPasswordActivity.java ,我得到一个“Cannot resolve symbol 'quicks
我试图使用以下命令停止运行cloudera/quickstart的容器 docker stop [container] 但它并没有停止,而且会永远持续下去(什么也没有发生)。如果我尝试使用删除它也会发
我是Hadoop的新手,并且使用cloudera quickstart vm(版本:Cloudera Standard 4.7.2)熟悉Hadoop。我已经将Java MRJ编译为Java 1.7,c
帮助我解决以下问题。 当我尝试使用location关键字在 hive 中创建新表时,出现以下错误。请帮我 hive> create table employee2(empid int, empname
我已在 Windows 8 主机上安装了 Cloudera Quickstart VM。我想知道是否可以在VM中使用sqoop从主机中运行的mysql数据库导入数据。VM运行centOS。如果是这样,
我希望实现 this type我的应用程序的 float 操作按钮的入门指南。是否有解释如何实现此功能的预定义模板或示例代码?我找不到任何代码示例,只有 Material Design Do/Don'
尝试学习 Angular,所以我从他们网站 ( https://angular.io/guide/quickstart ) 中的 TypeScript 快速入门教程开始 我正在使用 ubuntu 14
当发布候选版本发布时,我正在尝试浏览 Angular2 的快速入门。然而, typescript 编译器抛出了很多我无法弄清楚的错误。 https://angular.io/guide/quickst
我正在尝试启动并运行 angular2 quickstart 应用程序,但在运行 gulp 命令时遇到错误。 我有 ubuntu 15.04。我安装了 nodejs v0.10.25 和 npm 1.
问题 我正在尝试完成MongoDB on AWS quickstart创建一个简单的 MongoDB 集群。不幸的是,它从未完成部署,在一小时内未完成最后一个安装部分(PrimaryReplicaNo
第一次尝试使用干净的 Sphinx 1.1.3 安装来使用 Sphinx,但 shinx-quickstart 失败了。是否应该安装任何依赖项?我尝试 pip --force-reinstall sp
在kudu官方网站上检查后,我得到了一些说明,以下载kudu virtualbox镜像并安装vm。但是该存储库不再可用。 还有其他方法可以获取Kudu quickstart vm吗? 最佳答案 最后,
我正在Windows 10上使用docker,并且正在使用bash命令访问容器中的文件。 我将要搜索的文件本地化,需要在代码中更改一行,但是我不知道如何访问该脚本来对其进行编辑。 “cat”和“les
即使看了教程,我也不是很清楚架构。我们如何在分布式环境中扩展流集?比方说,我们的输入数据速度从源开始增加,那么如何确保 SDC 不会出现性能问题?将运行多少守护进程?是 Master worker 架
当我跑 sphinx-quickstart ,它问了我一堆问题。 > Root path for the documentation [.]: > Separate source and build
我正在尝试使用 cloudera quickstart vm 的配置单元 CLI 在配置单元中创建一个表。该命令被卡住,甚至在很长一段时间后也没有发生任何事情。我错过了什么吗?如果有人可以为此提供帮助
我正在按照英雄之旅教程构建我的第一个应用程序。我编写了一个组件文件 threads.component.ts,如下所示: @Component({ moduleId: module.id,
我是 TurboGears 的新手,刚刚在虚拟环境中安装了 TG2 开发。我正在关注 quickstart guide , 并通过 成功构建了一个 helloworld paster quicksta
我正在尝试使用 this 在 openshift 上设置 plone指南,在 window 上。我在 openshift quickstart guide 之后有 git 和 rhc .但是,当我到达
我是一名优秀的程序员,十分优秀!