在谷歌驱动器上保存文件

如何解决在谷歌驱动器上保存文件

嘿,我正在尝试执行应用程序,在其中检查我的当前位置并将此位置保存在“.txt”文件中。我的应用程序在每个“用户设置时间”秒内保存此位置。这是工作。另外我想将保存文件添加到谷歌驱动器。但我不知道怎么做。有什么方法可以创建文件夹并保存“.txt”文件,就像我在本地文件夹中所做的一样?

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 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(),Toast.LENGTH_LONG).show();
        }
    }

    }

}

提前致谢

解决方法

您可以检查大量来源以创建文件夹并将文件上传到 Google 云端硬盘

Creating Folder

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());

Uploading File

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());

对于 txt 文件的特定 mime 类型,您可能需要参考此 StackOverflow post (text/plain)。有关特定 Google 应用程序 MIME 类型,请参阅 documentation

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?