Java 在谷歌硬盘上保存文件
嘿,我正在尝试做的应用程序,我检查我的当前位置,并保存在“.txt”文件这个位置。我的应用程序以每“用户设置时间”秒保存此位置。这就是工作。我还想添加保存文件到谷歌驱动器。但我不知道怎么做。是否有任何方法可以创建一个文件夹并保存“.txt”文件,就像我使用本地文件夹一样Java 在谷歌硬盘上保存文件,java,android,android-studio,google-drive-api,currentlocation,Java,Android,Android Studio,Google Drive Api,Currentlocation,嘿,我正在尝试做的应用程序,我检查我的当前位置,并保存在“.txt”文件这个位置。我的应用程序以每“用户设置时间”秒保存此位置。这就是工作。我还想添加保存文件到谷歌驱动器。但我不知道怎么做。是否有任何方法可以创建一个文件夹并保存“.txt”文件,就像我使用本地文件夹一样 public class Save extends AppCompatActivity { boolean sms = false; int n_seconds, n_minutes, n_sum; pr
public class Save extends AppCompatActivity {
boolean sms = false;
int n_seconds, n_minutes, n_sum;
private String path = Environment.getExternalStorageDirectory().toString() + "/Loc/Save";
private Button buttonStartThread;
private Handler mainHandler = new Handler();
private volatile boolean stopThread = false;
NumberPicker edit_text_input_back, edit_text_input_back_2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_background);
buttonStartThread = findViewById(R.id.button_start_thread);
edit_phone_number = findViewById(R.id.edit_phone_number);
edit_mail = findViewById(R.id.edit_email);
edit_text_input_back = (NumberPicker) findViewById(R.id.edit_text_input_back);
edit_text_input_back.setMaxValue(60);
edit_text_input_back.setMinValue(0);
edit_text_input_back.setValue(0);
edit_text_input_back_2 = (NumberPicker) findViewById(R.id.edit_text_input_back_2);
edit_text_input_back_2.setMaxValue(60);
edit_text_input_back_2.setMinValue(0);
edit_text_input_back_2.setValue(0);
edit_text_input_back.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker numberPicker, int i, int i1) {
n_seconds = i1;
}
});
edit_text_input_back_2.setOnValueChangedListener(new NumberPicker.OnValueChangeListener() {
@Override
public void onValueChange(NumberPicker numberPicker, int i, int i1) {
n_minutes = 60 * i1;
}
});
}
public void startThread(View view) {
stopThread = false;
n_sum = n_seconds + n_minutes;
ExampleRunnable runnable = new ExampleRunnable(n_sum);
new Thread(runnable).start();
buttonStartThread.setEnabled(false);
}
public void stopThread(View view) {
stopThread = true;
buttonStartThread.setEnabled(true);
}
class ExampleRunnable implements Runnable {
int seconds;
ExampleRunnable(int seconds) {
this.seconds = seconds;
}
@Override
public void run() {
for (; ; ) {
for (int i = 0; i < seconds; i++) {
if (stopThread)
return;
if (i == n_sum-1) {
runOnUiThread(new Runnable() {
@Override
public void run() {
createDir();
createFile();
}
});
}
Log.d(TAG, "startThread: " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
private void createDir() {
File folder = new File(path);
if(!folder.exists()){
try {
folder.mkdirs();
}catch (Exception e){
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
}
}
}
private void createFile() {
File file = new File(path+"/"+System.currentTimeMillis()+".txt");
FileOutputStream fileOutputStream;
OutputStreamWriter outputStreamWriter;
try {
Intent intent = getIntent();
Double lat = intent.getDoubleExtra("adres", 0);
Double lon = intent.getDoubleExtra("adres2", 0);
String adr = intent.getStringExtra("adres3");
fileOutputStream = new FileOutputStream(file);
outputStreamWriter = new OutputStreamWriter(fileOutputStream);
outputStreamWriter.append("Your adress: " + adr + ". " + "Your latitude: " + lat + ", " + "longtitude: " + lon+".");
outputStreamWriter.close();
fileOutputStream.close();
}catch (Exception e){
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
}
}
}
}
公共类保存扩展了AppCompative活动{
布尔sms=假;
整数n_秒,n_分钟,n_和;
私有字符串路径=Environment.getExternalStorageDirectory().toString()+“/Loc/Save”;
私有按钮启动线程;
私有处理程序mainHandler=新处理程序();
private volatile boolean stopThread=false;
NumberPicker编辑文本输入返回,编辑文本输入返回2;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_后台);
buttonStartThread=findViewById(R.id.button\u start\u thread);
编辑电话号码=findViewById(R.id.edit电话号码);
edit_mail=findviewbyd(R.id.edit_email);
edit_text_input_back=(NumberPicker)findviewbyd(R.id.edit_text_input_back);
编辑文本输入返回。设置最大值(60);
编辑文本输入返回。设置最小值(0);
编辑文本输入返回设置值(0);
edit_text_input_back_2=(NumberPicker)findviewbyd(R.id.edit_text_input_back_2);
编辑文本输入返回2.设置最大值(60);
编辑文本输入返回2.设置最小值(0);
编辑文本输入返回设置值(0);
编辑文本输入返回setOnValueChangedListener(新的NumberPicker.OnValueChangeListener(){
@凌驾
值更改时的公共无效(NumberPicker NumberPicker,int i,int i1){
n_秒=i1;
}
});
编辑文本输入返回2.setOnValueChangedListener(新的NumberPicker.OnValueChangeListener(){
@凌驾
值更改时的公共无效(NumberPicker NumberPicker,int i,int i1){
n_分钟=60*i1;
}
});
}
公共void startThread(视图){
stopThread=false;
n_总和=n_秒+n_分钟;
ExampleRunnable=新的ExampleRunnable(n_和);
新线程(runnable.start();
buttonStartThread.setEnabled(false);
}
公共无效停止线程(视图){
stopThread=true;
buttonStartThread.setEnabled(true);
}
类ExampleRunnable实现Runnable{
整数秒;
ExampleRunnable(整数秒){
这个。秒=秒;
}
@凌驾
公开募捐{
对于(;;){
对于(int i=0;i
提前感谢您您可以查看大量资源,以创建文件夹并将文件上载到Google Drive
对于
txt
文件的特定mime类型,您可能需要参考此(text/plain
)。有关特定的Google应用程序mime类型,请参阅。您可以查看大量的源代码,以创建文件夹并将文件上载到Google Drive
对于
txt
文件的特定mime类型,您可能需要参考此(text/plain
)。有关特定的Google应用程序mime类型,请参阅。谢谢您的回答,但我有一些错误,例如我无法设置名称或设置MIMETYPE。我阅读了文档,不知道如何解决这个问题。嗨@Leming,你能告诉我错误是什么吗?你是怎么解决这个问题的?谢谢你的回答,但我有错误,例如我不能设置名称或设置mimetype。我阅读了文档,不知道如何解决这个问题。嗨@Leming,你能告诉我错误是什么吗?你是如何解决这个问题的?
File fileMetadata = new File();
fileMetadata.setName("Invoices");
fileMetadata.setMimeType("application/vnd.google-apps.folder");
File file = driveService.files().create(fileMetadata)
.setFields("id")
.execute();
System.out.println("Folder ID: " + file.getId());
File fileMetadata = new File();
fileMetadata.setName("photo.jpg");
java.io.File filePath = new java.io.File("files/photo.jpg");
FileContent mediaContent = new FileContent("image/jpeg", filePath);
File file = driveService.files().create(fileMetadata, mediaContent)
.setFields("id")
.execute();
System.out.println("File ID: " + file.getId());