我正在尝试将功能合并到备份和恢复应用程序数据库到谷歌驱动器应用程序文件夹(用户不可见).我浏览了为android 提供的基本设置指南设置指南,可以让用户授权应用程序并到达调用onConnected方法的位置.
我面临的问题是,我不知道如何将数据库文件(.db)从设备"发送"到google drive app文件夹.Google已经共享了用于创建新文件的代码段,但就此而言.我确实发现了一个前面提到的问题,模糊地类似于我正在寻找的Google驱动器备份和恢复Android应用程序的数据库和共享首选项,但后来又不是我想要的.
搜索谷歌不会返回任何有用的链接,因为这是相对较新的API.
更新1:
共享onConnected()代码,
public void onConnected(Bundle bundle) {
Toast.makeText(GoogleSignIn.this, "In onConnected activity", Toast.LENGTH_SHORT).show();
// Testing to see if database is indeed uploaded to google drive app folder
String db_name = "XXX_DB";
String currentDBPath = "/data/" + "com.abc.efg" + "/databases/" + db_name;
saveToDrive(
Drive.DriveApi.getAppFolder(mGoogleApiClientDrive),
"XXX_DB.db",
"application/x-sqlite3",
new java.io.File(currentDBPath)
);
}
Run Code Online (Sandbox Code Playgroud)
更新2:
下面分享的解决方案非常适合将数据库上传到google drive app文件夹.对于那些可能面临类似问题的人,请尝试将数据库路径更改为"/data/data/com.abc.efg/databases/" + db_name而不是"/data/com.abc.efg/databases/" + db_name
下一步是能够从google drive app文件夹中检索和恢复数据库.如果我能够使它工作,应该更新这个问题.
编辑:我已将文本设置为如下字符串:
String text =("Hello!");
我想将其转换为纯文本文件,然后上传到Google云端硬盘文件夹.我试过下面的代码,但它没有完整,所以我不能说出现了什么错误.
我正在使用谷歌硬盘"快速启动"演示,并尝试根据我的需要定制它.链接:https://github.com/googledrive/android-quickstart
DriverClass:
public class UploadDrive extends Activity implements ConnectionCallbacks,OnConnectionFailedListener {
private static final String TAG = "androiddrivequickstart";
private static final int REQUEST_CODE_CAPTURE_IMAGE = 1;
private static final int REQUEST_CODE_CREATOR = 2;
private static final int REQUEST_CODE_RESOLUTION = 3;
private GoogleApiClient mGoogleApiClient;
private Bitmap mBitmapToSave;
private void saveFileToDrive() {
// Start by creating a new contents, and setting a callback.
Log.i(TAG, "Creating new contents.");
//How to call? Can i use File from java.io? …Run Code Online (Sandbox Code Playgroud)