У меня есть Spinner, который загружается с файлами из папки SD video, идея в том, что при выборе видео проигрыватель открывается и воспроизводится, или, по крайней мере, он открывается, и я нажимаю кнопку воспроизведения. Текст упражнения говорит следующее:
When entering the application, all the files contained in that folder must be read and displayed in a Spinner type control.
When clicking on one of them, it must be viewed using the application associated with the reproduction of system videos.
Это мой код:
public class MainActivity extends Activity implements AdapterView.OnItemSelectedListener {
private final int REQUEST_READ_EXTERNAL_STORAGE = 0;
private Spinner spinner;
private List<String> item = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
pedirPermisos();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, item);
spinner.setAdapter(adapter);
}
private void pedirPermisos() {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this,
Manifest.permission.READ_EXTERNAL_STORAGE)) {
Toast.makeText(this, "Se necesita acceso de lectura a la SD",
Toast.LENGTH_SHORT).show();
}
ActivityCompat.requestPermissions(this,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
REQUEST_READ_EXTERNAL_STORAGE);
} else {
Toast.makeText(this, "La memoria externa no está disponible",
Toast.LENGTH_SHORT).show();
}
}
}
public void onRequestPermissionsResult ( int requestCode, String[] permissions,
int[] grantResults){
switch (requestCode) {
case 0:
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
leerSD();
else
Toast.makeText(this, "No se ha aceptado el permiso", Toast.LENGTH_SHORT).show();
return;
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
private void leerSD() {
item = new ArrayList<String>();
File f = new File(Environment.getExternalStorageDirectory() + "/videos/");
File[] files = f.listFiles();
for (int i = 0; i < files.length; i++) {
File file = files[i];
if (file.isDirectory())
item.add(file.getName() + "/");
else
item.add(file.getName());
}
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String item = parent.getItemAtPosition(position).toString();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
В onItemSelected
Я бы использовал код, чтобы открыть плеер, но я не знать, как это