Das wäre mir persönlich zu viel Gefrickel.
Ich würde mich eher auf die drei notwendigen und offiziellen Android Methoden und deren Interpretation verlassen - die machen es auf jeden Fall richtig.
Hier gibt es den Code zur Environment Klasse. Guck mal zum Beispiel in die isExternalStorageEmulated Methode. Die nutzen den MountService. Wenn der es nicht weiß ...
So ist der korrekte Ablauf:
* API kleiner 9 --> Environment.getExternalStorageState verwenden und interpretieren.
* API kleiner 11 --> Environment.isExternalStorageRemovable sowie Environment.getExternalStorageState verwenden und interpretieren.
* API größer 10 --> Environment.isExternalStorageEmulated sowie Environment.isExternalStorageRemovable sowie Environment.getExternalStorageState verwenden und interpretieren.
Das ist eine einfache Matrix die im Grunde genommen in Deinem Fall nur erfordert das Environment.isExternalStorageEmulated==false, Environment.isExternalStorageRemovable==true ist und den Status Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))==true besitzt. Hier ein Beispiel für Deinen Fall, ist blind aus dem Ärmel geschüttelt, wenn Du Fehler findest darfst Du sie behalten:
1boolean emulated = false;
2boolean removable = true;
3boolean mounted = false;
4
5if (Build.VERSION.SDK_INT >= 9) {
6emulated = Environment.isExternalStorageEmulated();
7}
8
9if (Build.VERSION.SDK_INT >= 11) {
10removable = Environment.isExternalStorageRemovable();
11}
12
13mounted = (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))) ? true : false;
14
15if (removable && mounted && !emulated) {
16// jetzt Du
17}
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.