小编Pfr*_*edd的帖子

为什么我的应用程序会出现“不支持的 URI 内容”错误?

我正在尝试编写一个 Android 应用程序,它需要查询用户以选择某些数据文件所在的目录。

执行以下代码时,将启动 Android 文件选择器并选择一个目录。

返回的 URI 对我来说看起来有效:

内容://com.android.externalstorage.documents/tree/primary%3ANotifications

然后,当我查询内容提供商时,它崩溃了。

返回的错误是这样的:

 Caused by: java.lang.UnsupportedOperationException: Unsupported Uri content://com.android.externalstorage.documents/tree/primary%3ANotifications
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

package com.muddco.fptest2;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    static String TAG = "TEST123";
    public static TextView textView, uriView;
    public  Object act = this;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = (TextView) findViewById(R.id.view1);
        uriView = (TextView) findViewById(R.id.uriview);;

        showFileChooser();
    }

    private static …
Run Code Online (Sandbox Code Playgroud)

java android

6
推荐指数
1
解决办法
3705
查看次数

如何按文件扩展名过滤 ACTION_OPEN_DOCUMENT 意图

我有代码通过发出带有 ACTION_OPEN_DOCUMENT 意图的 createChooser 来启动文件选择器。

这是有效的代码:

                Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
                intent.addCategory(Intent.CATEGORY_OPENABLE);
                intent.setType("*.*");
                startActivityForResult(Intent.createChooser(intent, "Choose .xyz file"), RQS_OPEN_XYZ_FILE);
Run Code Online (Sandbox Code Playgroud)

这将打开一个文件选择器,允许用户选择任何类型的文件。

我想让文件选择器将用户的选择限制为仅以“.xyz”结尾的文件。

如果这是“标准”文件类型,我可以按 MIME 类型过滤它。例如,如果我添加 setType("media/jpeg"),则文件选择器中只能选择 jpeg 文件。但是,在这种情况下,没有与“.xyz”对应的 MIME 类型。

有人建议我尝试使用数据路径过滤器,但我无法弄清楚如何实现它。

有可能做到这一点吗?如果是这样,我该怎么做?

谢谢!

java android android-intent

6
推荐指数
0
解决办法
1628
查看次数

为什么我需要添加 Material Theme 依赖才能解析 DocumentFile

我需要访问 我的 Android Studio 项目中的DocumentFile类。我花了很长时间才能解决它。

Andriod 开发人员文档说我需要导入"androidx.documentfile.provider.DocumentFile",但是当我添加导入时,我被告知它无法解析该导入。它不喜欢“.documentfile”。部分。

经过大量的拔毛和咬牙切齿之后,我偶然发现我需要添加对"com.google.android.material:material:1.0.0"的实现依赖 。一旦我将它添加到我的构建文件中,包含就解决了,我可以访问 DocumentFile 类。

为什么是这样?说明我需要这样做的文档在哪里?或者,我应该做一些不同的事情来解决 DocumentFile 吗?

对此的任何见解将不胜感激。

java android

4
推荐指数
1
解决办法
84
查看次数

Excel 插件:如何创建范围?

我正在用 JavaScript 编写一个 Excel 插件。

我需要做的是找到当前选定的单元格,然后创建一个 4 列宽、X 行高的范围对象,选定的单元格位于所选内容的左上角。

我知道如何找到当前选定的单元格,但我不知道如何扩展该选择或创建一个我需要的大小的新范围。

任何援助将不胜感激!

javascript excel range selection office-js

1
推荐指数
1
解决办法
429
查看次数

为什么我无法写入 Android 外部存储?

我正在尝试编写一个 Android 应用程序,除其他外,它需要读取文件并将其写入“外部”存储。

虽然我能够浏览并选择外部存储上的文件夹,但每次尝试访问该文件时,都会收到“权限被拒绝”I/O 异常。

我已在我的应用程序清单中包含以下权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
Run Code Online (Sandbox Code Playgroud)

我还在 Android 中启用了该应用程序的存储权限。

我正在 Chromebook 上进行开发,因此无法访问模拟器。因此,我通过 USB-C 电缆在手机(Pixel 3)上测试和调试我的应用程序。我还可以生成 APK 并将其旁加载到我的 Chromebook 上,但我无法通过这种方式进行调试。

以下代码示例是我从互联网上收集的。

 public void writeFileExternalStorage(View view) {
        String cashback = "Get 2% cashback on all purchases from xyz \n Get 10% cashback on travel from dhhs shop";
        String state = Environment.getExternalStorageState();
        //external storage availability check
        if (!Environment.MEDIA_MOUNTED.equals(state)) {
            return;
        }
        File file = new File(Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_DOCUMENTS), filenameExternal);


        FileOutputStream outputStream = null;
        try {
            file.createNewFile();
            //second argument of FileOutputStream …
Run Code Online (Sandbox Code Playgroud)

java android

0
推荐指数
1
解决办法
3981
查看次数