由于更改与访问共享存储的授权有关,因此似乎不再可能通过这种方法搜索所有 pdf 类型的文档(使用 requestLegacyExternalStorage = "false"):
ContentResolver cr = context.getContentResolver();
Uri uri = MediaStore.Files.getContentUri("external");
String[] projection = null;
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "="
+ MediaStore.Files.FileColumns.MEDIA_TYPE_NONE;
String[] selectionArgs = null;
String sortOrder = null;
Cursor allNonMediaFiles = cr.query(uri, projection, selection, selectionArgs, sortOrder);
Run Code Online (Sandbox Code Playgroud)
检查此链接:媒体数据限制
我看到的唯一解决方案是使用 SAF 以递归方式扫描共享存储的所有树,这在我看来资源非常昂贵且荒谬。
有没有人有其他想法?
我在 Android 应用程序中使用msgraph-sdk-java主要是为了访问 OneDrive。在调试模式下一切正常,但是当我在启用 minify 的发布模式下编译时,我遇到了问题。
mGraphServiceClient.me().drive().root().children().buildRequest();
Run Code Online (Sandbox Code Playgroud)
DefaultHttpProvider[sendRequestInternal] - http 请求期间出现 370Error Throwable 详细信息:com.microsoft.graph.core.ClientException:http 请求期间出错..
和
com.microsoft.graph.core.ClientException:在 com.microsoft.graph.http.DefaultHttpProvider.sendRequestInternal(:368) at com.microsoft.graph.http.DefaultHttpProvider.access$000(:53) at com 的 http 请求期间出错。 microsoft.graph.http.DefaultHttpProvider$1.run(:155) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)在 java.lang.Thread.run(Thread.java:764) 引起:java.lang.RuntimeException:java.lang.ClassNotFoundException:com.sun.ws.rs.ext.RuntimeDelegateImpl 在 javax.ws.rs.ext.RuntimeDelegate.findDelegate(:122) 在 javax.ws.rs.ext.RuntimeDelegate.getInstance(:91) 在 javax.ws.rs.core.UriBuilder.newInstance(:69) 在 javax .ws.rs.core.UriBuilder.fromUri(:80) at com.microsoft.graph.http.BaseRequest.getRequestUrl(:147) at com.microsoft.graph.http.DefaultHttpProvider.sendRequestInternal(:239)
这是 gradlew myapp:dependencies 的返回,其中javax.ws.rs出现。
+--- com.microsoft.graph:microsoft-graph:1.4.+ -> 1.4.0
| +--- org.apache.commons:commons-math3:3.6.1
| +--- com.google.code.gson:gson:2.8.2
| \--- com.sun.jersey:jersey-server:1.19.4
| \--- com.sun.jersey:jersey-core:1.19.4
| \--- javax.ws.rs:jsr311-api:1.1.1// <----here?
Run Code Online (Sandbox Code Playgroud)
这是我在 proguard-rules.pro 文件中尝试的内容:
-keep class com.microsoft.** { …Run Code Online (Sandbox Code Playgroud)