2015-01-12 17 views
5

Uygulamam, yedeklerin bir Google Drive uygulama klasörüne kaydedilmesine izin verecek şekilde ayarlanmıştır. Hepsi aynı cihaz üzerinde mükemmel çalışır. Yedekleme yaptığımda, uygulamanın verilerini silin ve ardından tüm işleri geri yükleyin. Ancak, bir aygıtta yedeklemeye çalıştığımda, başka bir bilgisayara yüklediğimde ve herhangi bir dosya bulunamadığında geri yükleme girişiminde bulunduğumda. Uygulamayı orijinal cihazda kaldırdığımda, aynı cihazda yeniden yüklediğimde ve geri yüklemeye çalıştığımda da aynı şey geçerli. Her iki durumda da, Google Drive'a giriş yaptığımda appdata klasöründe dosyalar olduğunu görmemize rağmen hiçbir dosya bulunamadı.Android - Google Drive appdata klasörüne başka bir cihazdan erişebilir, ancak aynı uygulama

Bir DRIVE_ID aygıttan aygıta farklı olacağından, aygıtlar arasında çalışmak için bir dosyanın DRIVE_ID yerine RESOURCE_ID değerini kullanmanız gerektiğini bir yerde okudum. Ancak, RESOURCE_ID'yi nasıl elde ettiğimi görmenin tek yolu, driveId.getResourceId() kullanmaktır ve başka bir aygıttan uygun DRIVE_ID'yi alamıyorum.

tl; dr: başka bir aygıt/yükleme tarafından oluşturulan appdata klasöründen uygun dosyayı alma konusunda nasıl gitmeliyim?

cevap

11

Uygulamamda da bir veritabanı yedekleme seçeneğim var. Yeni Google Drive Android Api'yi kullanarak uyguladım ve daha da önemlisi, bir cihazdan diğerine mükemmel bir şekilde çalışıyor.

  1. okuma veya Google Drive'a şey yazmadan önce, her şeyin senkronize edilir hale getirmek için requestSync arayıp güncel (o here nasıl kullanılacağını bakınız):

    İşte ben yaptım ve ne tavsiye nasıl.

  2. Dosyalarınızı, tanımlayıcılar yerine bir sorgu kullanarak ad alarak alın. Google Drive, aynı ada sahip birden fazla dosyaya izin verdiği için, sorgunuzu tarihe göre sipariş edin ve en yenisini kullanın.
  3. Aynı ada sahip birden fazla yedek dosyası oluşturmamak için, Google Drive'da yedekleme dosyasının zaten mevcut olup olmadığını bulmak için bir sorgu kullanın ve varsa, açın ve üzerine yazın.
  4. Bu, beğenmeyeceğiniz bir noktadır: Şu an için Appfolder'ı kullanmamanızı öneririm. Google, uygulamayı kaldırırken ve yeniden yüklerken bazı senkronizasyon sorunları olabileceğini kabul etti. Appfolder'ı da başarılı bir şekilde uygulamamda kullanmaya çalıştım ve sonunda Google Drive'da sıradan bir klasör oluşturmaya başladım. Bununla birlikte, bunu benimsemeden önce ilk üç tavsiyeyi deneyebilirsiniz.

Umarım bu noktalar uygulamanıza yardımcı olabilir. Başka bir şeye ihtiyacın varsa, söyle.

+0

Maalesef muhtemelen haklısınız. Şimdilik sadece normal bir klasör kullanacağım ve kullanıcıların gereksiz olduğunu ve silmediğini düşünmüyorum. Ancak, benim app'ımın isminin üzerine yazılacağı için bunu yapmamalılar. Teşekkürler! –

+0

Komik şey, eğer silindiyse, GDAA uygulamanızın günlerce görünür olacağından, ölümden geri getirmek için bolca zamanı vardır. IsTrashed() işaretini bile göstermiyor. Hatta buna yazabilir/dosya oluşturabilirsiniz. Ve endişelenmeyin, kullanıcı çöpü boşalsa bile, onu göreceksiniz (düzeltilinceye kadar, ancak bir yıllık yıl dönümü yaklaştığından beri, kalıcı bir özellik haline gelebilir :). Http://stackoverflow.com/questions/22515028 adresine bakın. – seanpj

+0

Çözmeme izin verin, Android uygulamanız aslında hiç bir ipucu olmadığı için onu ölümden geri getiremez. Bu yüzden birkaç gün sonrasına kadar mutlu bir şekilde kullanacak ... OOPS, şimdi tüm N gün veri ile gitti. – seanpj