【发布时间】: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