首页 > 解决方案 > 如何在android的SQLiftDatabase中保存树Uri

问题描述

我从这段代码中得到了一个树 Uri:

create_data_button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);


            //Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            //intent.setType("*/*");
            startActivityForResult(intent, 1);

        }
    });
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);

    folder_uri=data.getData();
    getContentResolver().takePersistableUriPermission(folder_uri,takeFlags);

}

然后我将树 Uri 作为字符串保存到 SQLDatabase:

folder_uri.toString()

然后我从数据库中获取一个字符串,并在下次想使用树 Uri 时从此代码中获取一个 Uri:

tree_uri=Uri.parse(string);

但是当我使用它时它是一个无效的 URI。那么我应该怎么做才能使 tree_uri 不无效?

标签: androiduri

解决方案


推荐阅读