Я пытаюсь получить доступ к своей SD-карте на Android 7.0 (Samsung S7) и обнаружил, что это возможный способ получить разрешение на это: https://developer.android.com/training/articles/scoped-directory-access
Я написал следующий код
public class MainActivity extends AppCompatActivity {
Intent sdCardIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StorageManager sm = (StorageManager)getSystemService(Context.STORAGE_SERVICE);
StorageVolume sdCARD = null;
for (StorageVolume volume : sm.getStorageVolumes()) {
if (volume.getDescription(this.getApplicationContext()).equals("SD card")) {
sdCARD = volume;
}
}
if (sdCARD == null) {
return;
}
sdCardIntent = sdCARD.createAccessIntent(null);
startActivityForResult(sdCardIntent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Access sd card?
}
}
При запуске я получаю приглашение с разрешением, и оно, кажется, работает, так как я получаю событие в onActivityResult, но я не нашел, как получить доступ к какому-либо файлу или каталогу на SD-карте.
Должен ли я использовать URI, полученный из результата Intent?