我只想从应用程序发送我的数据库文件以将其发送到服务器。数据库是针对同一个应用程序的,所以我认为它是可行的,我只是不知道如何尝试它
答案 0 :(得分:0)
您的数据库是一个文件,您可以获取数据库文件,默认为
Context ctx = this; // for Activity, or Service. Otherwise simply get the context.
String dbname = "mydb.db";//your db name
Path dbpath = ctx.getDatabasePath(dbname);
然后您可以复制此文件,然后正常使用http方法将其发送到您的服务器。
但是我建议你发送这个数据库的内容而不是数据库文件,因为它需要传输一些额外的内容,但这些内容可能不是必需的。
答案 1 :(得分:0)
String DB_PATH;
DB_PATH = android.os.Build.VERSION.SDK_INT >= 17 ? getApplicationInfo().dataDir + "/databases/" : "/data/data/" + getApplicationContext().getPackageName() + "/databases/";
File dbFile = new File(DB_PATH + getApplicationContext().getResources().getString(R.string.DB_NAME));
//Log.v("dbFile", dbFile + " "+ dbFile.exists());
Log.d(TAG,"databse is exists "+dbFile.exists());
使用http连接类
将dbFile通过网络发送到服务器
答案 2 :(得分:-1)
作为讨论,sqlite数据库只是一个文件,你可以共享这个文件,但正如你所说的,这个sqlite文件属于将文件发送到服务器的同一个应用程序。在这种情况下看到db-file正在使用中,所以我认为你将在同时读取这个文件时遇到困难,如果当前的更改正在进行,你可能不会得到更新的文件。 否则,您可以通过Web服务直接发送文件,或者在服务器的ftp上或任何其他方便的方式上传文件。