Android – OnObbStateChangeListener.MOUNTED es cierto, pero isObbMounted () es falso, ¿qué está mal?

Tengo un archivo de extensión en "/sdcard/Android/obb/com.example.obbtest/vid-exp1.obb". Contiene un archivo MP4 y quiero montar el .obb para leer el archivo.

Esto es lo que estoy haciendo para montarlo:

String obbDir = "/sdcard/Android/obb/com.example.obbtest/vid-exp1.obb"; 

.

 StorageManager storage = (StorageManager) getApplicationContext().getSystemService(STORAGE_SERVICE); storage.mountObb(obbDir, null, listener); 

Este es el código del oyente:

 OnObbStateChangeListener listener = new OnObbStateChangeListener() { @Override public void onObbStateChange(String path, int state) { if (state == OnObbStateChangeListener.MOUNTED) { toastString("Mounted! According to the listener"); //Test it with the isObbMounted() if (storage.isObbMounted(obbDir)) { toastString("Efectively mounted!"); } else { toastString("Not really :("); } toastString(storage.getMountedObbPath(obbDir)); } else { tuestameString("NOT mounted according to the listener"); } } }; 

Desafortunadamente, la salida que obtengo es un brindis diciendo "Montado de acuerdo con el oyente" seguido de "No realmente :(" Diseñé esta prueba porque cuando probé getMountedObbPath (obbDir) tengo una cadena nula en lugar de la ruta. Ve se aseguró de que el archivo .obb existe y todo eso, sin él o sin la clave de encripción correcta que don'get "Montado! …".

No entiendo por qué OnObbStateChangeListener.MOUNTED es true, pero isObbMounted (obbDir) false. ¿Alguien sabe lo que estoy haciendo mal?

    One Solution collect form web for “Android – OnObbStateChangeListener.MOUNTED es cierto, pero isObbMounted () es falso, ¿qué está mal?”

    Tenía este problema en un dispositivo Samsung. Sucede cuando /mnt/sdcard/ no es un directorio sino un enlace simbólico a otro dir (en mi caso que era /storage/sdcard0 ).

    En este caso StorageManager no utiliza la ruta de acceso al obb que ha especificado, pero la ruta con enlaces simbólicos resuelto: isObbMounted("/mnt/sdcard/my.obb") devuelve false y isObbMounted("/storage/sdcard0/my.obb") Es true .

    Para acceder al obb montado, no debe utilizar la ruta obbDir, sino la ruta pasada a onObbStateChange() en el primer argumento: isObbMounted(path) .

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.