Мне нужно проверить, принадлежит ли файл SDcard или нет, ранее использовался код
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public boolean isFromSdCard(String filepath) {
String path1 = Environment.getExternalStorageDirectory().toString();
return !filepath.startsWith(path1);
}
Поскольку API 29 Environment.getExternalStorageDirectory()
устарел, как мы можем выполнить проверку сейчас
Я хочу передать файл в собственный код, используя openFileDescriptor
Uri contentUri = ContentUris.withAppendedId(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
cursor.getLong(Integer.parseInt(BaseColumns._ID)));
String fileOpenMode = "r";
ParcelFileDescriptor parcelFd =
resolver.openFileDescriptor(contentUri, fileOpenMode);
if (parcelFd != null) {
int fd = parcelFd.detachFd();
// Pass the integer value "fd" into your native code.
}
на My Galaxy A5 (2016) (Android 7.0). В доступе отказано. Pixel 2 Simulator с API 24 также получает ошибку отказа в разрешении
нужно ли нам проверять
if (resultCode == RESULT_OK) {
getContentResolver().takePersistableUriPermission(data.getData(),
Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}
Я использовал, чтобы проверить это в старом коде, если файл присутствовал на SD-карте, как можно мы делаем это как для API 29,