|     Inicio    |   |         |  |   FOROS      |  |      |      
   Elastix - VoIP B4A (Basic4Android) App inventor 2 PHP - MySQL
  Estación meteorológica B4J (Basic4Java) ADB Shell - Android Arduino
   AutoIt (Programación) Visual Basic Script (VBS) FireBase (BD autoactualizable) NodeMCU como Arduino
  Teleco - Emisora de A.M. Visual Basic Cosas de Windows Webs interesantes
Translate:
Búsqueda en este sitio:


Nuevo concurso para España, Argentina, Brasil, Chile, Colombia, Ecuador, México, Perú y Portugal.

B4A en español - Juan Antonio Villalpando
(BASIC4Android)

-- Tutorial de B4A --

Volver al índice del tutorial

____________________________

37B.- Sincronizar archivos de tu ordenador y el móvil con DropBox.
- Tutoriales. Sincronizar archivos de tu ordenador y el móvil con DropBox.

- Presentación.

Supongamos que tenemos en nuestro ordenador una carpeta y en ella tenemos archivos que además nos interesa tenerlos también en el móvil.
Mediante DropBox podemos tener sincronizados esos archivos en nuestro ordenador y en el móvil.
Sincronizados significa que si en esa carpeta borramos, creamos o modificamos archivos o carpetas, también se modificaran/crearán/borrarán esos archivos en el móvil.

Debemos tener cuidado que la carpeta "común" del ordenador y móvil no tenga demasiado tamaño en contenido de archivos, ya que deben "caber" en la memoria del móvil y ésta siempre es más pequeña que la del ordenador.

____________________________________

- Comenzamos.

0.- Debemos tener previamente una cuenta con DropBox realizada, por ejemplo desde nuestro ordenador.

1.- Bajamos los archivos de la librería de Sincronización de DropBox, son:
- DropboxSync.xml
- DropboxSync.jar

y los puedes bajar de: http://www.basic4ppc.com/android/files/DropboxSync.zip

2.- Estos dos archivos los copias en la carpeta Libraries de Basic4Android, concretamente:

C:\Archivos de programa (x86)\Anywhere Software\Basic4android\Libraries

3.- Bajas el SDK de DropBox para Android de: https://www.dropbox.com/developers/sync/sdks/android

Lo descomprimes. Vas a su carpeta descomprimida...

..\dropbox-android-sync-sdk-2.0.2\dropbox-android-sync-sdk-2.0.2\libs

y copias el archivo: dropbox-sync-sdk-android.jar

en la carpeta Libraries de Basic4Android, concretamente:

C:\Archivos de programa (x86)\Anywhere Software\Basic4android\Libraries

4.- Es decir, en la carpeta C:\Archivos de programa (x86)\Anywhere Software\Basic4android\Libraries tenemos:

5.- Suponemos que ya tenemos cuenta en DropBox, entramos en nuestra cuenta, desde nuestro ordenador y luego en...

https://www.dropbox.com/developers/apps/create

6.- Rellenamos la pantalla de creación de nueva aplicación.

- El nombre de Provide an app name..., no debe llevar la palabra dropbox. Tampoco deberá llevar caracteres "raros".

- En mi caso he puesto Android_DB, será el nombre de la carpeta donde estarán mis archivos de DropBox en mi ordenador.

7.- Obtengo esta pantalla:

Anota la información en App key y App secret

6.- Basado en los tutoriales, vamos a realizar un programa.

____________________________
- Designer. Layout.

7.- Con el Designer creo un Layout llamado: "1"

Designer

Situo cuatro Button y un ListView

8.- Activo la Librería DropboxSync

____________________________
- Código.

9.- Copio y pego este código.

Código

Sub Process_Globals
' Juan Antonio Villalpando
' juana1991@yahoo.com
' Noviembre 2013
   Private manager As DbxAccountManager
   Private key As String = "s7llsnr28******" ''''''' Aquí debes poner tu App key
   Private secret As String = "7qa6r8r********" '''' Aquí debes poner tu App secret
End Sub

Sub Globals
   Dim ListView1 As ListView
   Dim nombre_archivo, es_carpeta As String
End Sub

Sub Activity_Create(FirstTime As Boolean)
   If FirstTime Then
      manager.Initialize(key, secret, "manager")     
   End If
   Activity.LoadLayout("1")
End Sub

Sub Button1_Click
  ' Conexión
  manager.LinkAccount
  ' Desconexión
  ' manager.UnLinkAccount
End Sub

Sub Button2_Click
  ' Baja el archivo Hola.txt
  ' y lo guarda en la SDCard
   manager.DownloadFile("/", "Hola.txt", File.DirRootExternal, "Hola.txt")
End Sub

Sub Button3_Click
  ' Sube el archivo a la caché local del DropBox. DropBox lo subirá cuando pueda.
   manager.UploadFile(File.DirRootExternal, "Hola.txt", "/", "Adios.txt")
End Sub

Sub Button4_Click
   ' Listado de archivos y carpetas en el Log
   ListView1.Clear
    For Each FileInfo As DbxFileInfo In manager.ListFiles("/")
    nombre_archivo = FileInfo.Name
    es_carpeta = FileInfo.IsFolder
        Log(nombre_archivo & ", " & es_carpeta)
        ListView1.AddSingleLine(nombre_archivo & ", " & es_carpeta)
    Next
End Sub

Sub ListView1_ItemClick (Position As Int, Value As Object)
  ' Baja el archivo pulsado en el ListView1
  ' y lo guarda en la SDCard
  Dim components() As String
  components = Regex.Split(",", Value)
  nombre_archivo=components(0)
  Log(nombre_archivo)
  manager.DownloadFile("/", nombre_archivo, File.DirRootExternal, nombre_archivo)
End Sub

Sub Manager_AccountReady (Success As Boolean)
   ' Respuesta de haber conectado
   Log("Conectado: " & Success)
   If Success Then
   Msgbox("Hay conexión.", "Conectado")
   Else
   Msgbox("No hay conexión.", "Error")   
   End If
End Sub

Sub Manager_DownloadCompleted (Success As Boolean, LocalDir As String, LocalFileName As String)
   ' Respuesta a la bajada del archivo
   If Success Then
   Msgbox("El archivo ha bajado correctamente.", "Bajado y copiado.")
   Else
   Msgbox("Error en la bajada del archivo, tal vez era una carpeta", "Error")   
   End If
End Sub

10.- Voy al Manifest Editor (Project / Manifest Editor). Añado la parte de abajo y quedará de esta manera...

Código

'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: http://www.basic4ppc.com/forum/showthread.php?p=78136
AddManifestText(
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14"/>
<supports-screens android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:anyDensity="true"/>)
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.


AddApplicationText(
<activity android:name="com.dropbox.sync.android.DbxAuthActivity" />
<activity
  android:name="com.dropbox.client2.android.AuthActivity"
  android:launchMode="singleTask" >
  <intent-filter>
    <data android:scheme="db-YOURAPPKEY" /> <!-- NEED TO UPDATE -->
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>
<service
  android:name="com.dropbox.sync.android.DbxSyncService"
  android:enabled="true"
  android:exported="false"
  android:label="Dropbox Sync" />
  )

- Debes modificar la línea:

<data android:scheme="db-YOURAPPKEY" /> <!-- NEED TO UPDATE -->

Debes poner tu App key, pero después de db- (es obligatorio preceder la App key con db-), es decir...

<data android:scheme="db-s7llsnr2******" /> <!-- Fíjate que debe comenzar por db- >

- Para guardar este archivo, simplemente cerramos el Manifest Editor. Nos saldrá una ventana. Pulsamos "Sí".

 

- Ya tenemos el programa terminado, ahora lo ejecutamos, y pulsamos el Button1, que saldrá en el centro de la pantalla, para realizar la conexión con DropBox.

- Consulto esta información:

http://www.basic4ppc.com/android/help/dropboxsync.html

________________________________________________

- Ejecutando el programa...

La primera vez que pulsamos el botón Conectar nos saldrá el Navegador de Internet conectando con https://www.dropbox.com
y nos solicitará Permitir la conexión, las demás veces que lo pulsemos no lo pedirá.

Nos pedirá autentificación, ya que debemos tener previamente una cuenta con DropBox

Nos saldrá la siguente pantalla, pulsamos en Permitir.


- Previamente es conveniente ir a la carpeta Android_DB de nuestro ordenador y crear varios archivos y carpetas de pruebas.

En nuestro ordenador nos saldrá una ventana indicando que se nos ha creado en nuestra carpeta de DropBox, una subcarpeta llamada Android_DB.

Si en nuestro ordenador vamos a la carpeta de DropBox y entramos en la subcarpeta Aplicaciones, veremos que dentro de ella estará Android_DB

Es en esa carpeta donde pondremos los archivos y subcarpetas que queremos compartir en el móvil.

 

En nuestro ordenador, vamos a la carpeta del DropBox. Entramos en la carpeta Aplicaciones y luego en Android_DB.

Creamos la carpeta Bienvenido y varios archivos de prueba.

- La Subrutina Sub Manager_AccountReady (Success As Boolean) nos indicará si tenemos Conexión.

- Cuando pulsemos el botón "Bajar archivo", nos bajará el archivo "Hola.txt" a la tarjeta SDCard del móvil o del emulador.

- Cuando pulsemos el botón "Subir archivo", si tuvieramos en nuestra tarjera SDCard el archivo "Hola.txt", lo subirá a DropBox y le cambiará el nombre a "Adios.txt".
Después de pulsar este botón, espera unos instantes y consulta la carpeta de DropBox de tu ordenador, verás como se ha sincronizado y verás el archivo "Adios.txt"

- Cuando pulsemos el botón "Listar archivos", nos mostrará el listado de archivos y directorios que tenemos en nuestra carpeta.
Si va acompañado de "false", se trata de un archivo.
Si va acompañado de "true", se trata de una carpeta.

- Si pulsamos sobre un archivo de los que aparece en el ListView, se copiará en la tarjeta SDCard de nuestro emulador.

- Esta línea: components = Regex.Split(",", Value)

es para obtener el nombre del archivo y rechazar el "false", es decir, en el Value del ListView1 aparece:
Hola.txt, false

con la línea anterior obtenemos nombre_archivo=Hola.txt (hemos eliminado el ,false)

____________________________________

- Los archivos se sincronizan automáticamente cuando lo decide DropBox. Prueba crear un archivo pequeño en la carpeta DropBox (Android_DB) del ordenador y luego ve al emulador y pulsa en "Listar archivos" verás como ya se ha localizado.

También al revés, carga un archivo en la SDCard y pulsa el botón "Subir archivo", poniéndole su nombre en nuestro progrma, verás como al poco tiempo se observará en la carpeta Android_DB con el nombre de "Adios.txt", según he puesto en el programa.

- Es decir, los archivos que pongamos se sincronizan solos.

- Cuando los archivos suben y bajan utilizan una carpeta intermedia llamada caché, concretamente está en...

/data/data/com.dropbox/app_DropboxSyncCache

(siendo com.dropbox el nombre que le he puesto a mi aplicación)

 

____________________________________

Otra manera de entrar en nuestra carpeta de DropBox es directamente mediante la web de DropBox de esta manera...

Vamos al Navegador de Internet del Android.
Escribimos www.dropbox.com

Nos posicionaremos en la carpeta Android_DB

 

Si entramos en la carpeta Android_DB, podremos ver los archivos que tenemos compartido en nuestro ordenador.

En fin, creo que con todo lo comentado, el lector puede adaptar este tutorial fácilmente a sus necesidades.

________________________________

- Mi correo:
juana1991@yahoo.com
- KIO4.COM - Política de cookies. Textos e imágenes propiedad del autor:
© Juan A. Villalpando
No se permite la copia de información ni imágenes.
Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación y realizan análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. Acepto    Más información