【问题标题】:Issues loading .json file from file on Android从 Android 上的文件加载 .json 文件的问题
【发布时间】:2016-02-26 19:52:48
【问题描述】:

首先谢谢大家,如果你能帮助我。

在我的项目中,我必须在我的应用程序中上传一个 .json 文件,然后从浏览器中获取它。

我从 Manifest.xml 使用 Intent Filter 处理它,如下所示:

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="file"  android:host="*" android:pathPattern=".*\\.json" android:mimeType="*/*"  />
    </intent-filter>

然后,我从 MainActivity.java 中构造 File 对象并从创建的 File 中获取 String 结果:

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

        Intent intent = getIntent();
        String action = intent.getAction();
        Uri uri = intent.getData();

        if (action != null){
            if (action.compareTo(Intent.ACTION_VIEW) == 0) {
                String scheme = intent.getScheme();
                String path = intent.getDataString();                 

                if (scheme.compareTo(ContentResolver.SCHEME_FILE) == 0) {

                    try {
                        InputStream inputStream = getContentResolver().openInputStream(uri);
                        System.out.println("InputStream loaded");
                    } catch (FileNotFoundException e) {
                        System.out.println("InputStream not loaded");
                        e.printStackTrace();
                    }    
                }
            }
        }
    }

String对象path的值为file:///storage/emulated/0/Download/prova.json

主要问题是,当我尝试加载文件时,它会抛出一个异常,指出该文件不存在,即使它确实确定它存在。

再次感谢大家!

【问题讨论】:

  • 总是发布堆栈跟踪。

标签: java android json file uri


【解决方案1】:

所以您要读取的 json 在设备存储中,因此您需要在清单中启用以下权限

这将使游览应用程序能够在应用程序上下文之外读取设备上的文件

【讨论】:

  • 当我添加了权限后,代码就开始工作了!谢谢!
猜你喜欢
  • 2021-03-04
  • 2014-03-09
  • 2019-06-08
  • 1970-01-01
  • 2011-09-25
  • 1970-01-01
  • 2017-03-05
  • 2020-05-26
  • 1970-01-01
相关资源
最近更新 更多