Foros del Web » Programando para Internet » Android »

Compartir sonidos en mi APP (desde internal storage)

Estas en el tema de Compartir sonidos en mi APP (desde internal storage) en el foro de Android en Foros del Web. He estado leyendo que estoy se puede hacer a través de un FILEPROVIDER. He seguido todos los pasos que me marcan aquí: https://developer.android.com/refere...eProvider.html y ya ...
  #1 (permalink)  
Antiguo 10/06/2016, 17:51
 
Fecha de Ingreso: julio-2011
Mensajes: 76
Antigüedad: 9 años, 4 meses
Puntos: 1
Compartir sonidos en mi APP (desde internal storage)

He estado leyendo que estoy se puede hacer a través de un FILEPROVIDER. He seguido todos los pasos que me marcan aquí: https://developer.android.com/refere...eProvider.html

y ya tengo mi FILEPROVIDER preparado.

Ahora bien, como lo que quiero es poder compartir en mi APP archivos de la carpeta ASSETS, al parecer directamente no se puede, o es muy complejo, por lo que quiero copiar mi carpeta ASSETS a internal storage nada más arrancar la APP, y ya luego se podría compartir esos archivos desde la internal storage, con algo así:

Mi Android.Manifest:

Código:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mi.paquete">

    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="com.mi.paquete"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/fileprovider"/>
        </provider>

    </application>

</manifest>
XML de FileProvider:

Código:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android" package="com.mi.paquete">
    <files-path name="sonidos" path="sonidos/"/>
</paths>

La parte del MainActivity donde intento compartir un sonido...

Código:
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("audio/*");
                    share.putExtra(Intent.EXTRA_STREAM,Uri.parse("content://com.mi.paquete/sonidos/misonido.mp3"));
startActivity(Intent.createChooser(share, "Share Sound File"));

Última edición por dandorf; 10/06/2016 a las 18:22
  #2 (permalink)  
Antiguo 11/06/2016, 09:27
 
Fecha de Ingreso: julio-2011
Mensajes: 76
Antigüedad: 9 años, 4 meses
Puntos: 1
Respuesta: Compartir sonidos en mi APP (desde internal storage)

Acabo de conseguir que los archivos se me copien en mi carpeta data del almacenamiento interno. Ahora solo me falta poder compartirlos.

Tengo estas líneas cuando quiero compartir un sonido:

Código:
                    Intent share = new Intent(Intent.ACTION_SEND);
                    share.setFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
                    share.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    share.setType("audio/*");
                    share.putExtra(Intent.EXTRA_STREAM,Uri.parse("file:///data/data/com.mi.paquete/misonido.mp3"));
                    startActivity(Intent.createChooser(share, "Share Sound File"));
He comprobado con el DDMS que la dirección del URI es correcta, puesto que ahí se encuentra mi sonido.

Me aparece la ventana de con qué aplicación quiero compartir y hasta ahí todo bien, pero luego por ejemplo si le doy a Whatsapp aparece: Fallo al compartir archivo (o algo así) Inténtelo de nuevo.

Y si le doy a GMAIL, me pone: "Se ha denegado el permiso para el archivo adjunto".

No sé qué es lo que me falta para que salga bien, ayuda por favor!!!
  #3 (permalink)  
Antiguo 14/06/2016, 15:12
Avatar de racanix  
Fecha de Ingreso: diciembre-2008
Ubicación: Morelia Mich.
Mensajes: 192
Antigüedad: 11 años, 11 meses
Puntos: 8
Respuesta: Compartir sonidos en mi APP (desde internal storage)

Lo que puedo identificar es que estas pasando un recurso "privado",
file:///data/data/com.mi.paquete/misonido.mp3 esta dentro de tu app
y este no es accesible para otras apps, intenta cambiar la ruta y pasar un recurso que este en sdcard y que sea visible para las aplicaciones.

https://developer.android.com/guide/...a-storage.html

Sds

Etiquetas: app, internal, sonidos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:11.