Android内容解析程序takePersistableUriPermission API低于19无此类方法
我使用它是为了实现以下行为: 对于19岁以上的API(新的存储访问框架),用户通过Android内容解析程序takePersistableUriPermission API低于19无此类方法,android,android-intent,uri,android-contentprovider,android-contentresolver,Android,Android Intent,Uri,Android Contentprovider,Android Contentresolver,我使用它是为了实现以下行为: 对于19岁以上的API(新的存储访问框架),用户通过Intent.ACTION\u OPEN\u DOCUMENT选择文件;对于19岁以下的API,用户通过Intent.ACTION\u GET\u CONTENT选择文件。这些文件应该存储在应用程序的列表中,以供以后使用(打开它们)。因此,在我获得我使用的文件后: Uri uri = fileUri; final int takeFlags = data.getFlags() & (In
Intent.ACTION\u OPEN\u DOCUMENT
选择文件;对于19岁以下的API,用户通过Intent.ACTION\u GET\u CONTENT
选择文件。这些文件应该存储在应用程序的列表中,以供以后使用(打开它们)。因此,在我获得我使用的文件后:
Uri uri = fileUri;
final int takeFlags = data.getFlags()
& (Intent.FLAG_GRANT_READ_URI_PERMISSION
| Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
getApplicationContext().getContentResolver().takePersistableUriPermission(uri, takeFlags);
对于API高于19的情况,它可以正常工作,但对于API低于19的情况,例如,我使用API 14进行测试,得到了ANR,错误如下:
java.lang.NoSuchMethodError:android.content.ContentResolver.takePersistableUriPermission
有什么问题吗?谢谢
更新:似乎它(持久权限)是在低于14的API中自动完成的,这意味着如果API低于14,则只需注释掉此代码。public void takePersistableUriPermission(Uri Uri,int modeFlags)是在API级别19中添加的,但是如何实现我需要的UX:用户可以在以后使用时打开文件。。。(持久权限)好吧-看起来它是在API 14以下自动完成的。。。