2014-02-17 4 views
0

обои в том, что я хочу показать данные из базы данных, которая на самом деле в SDCARDне может получить доступ к SDCard в начальный момент времени устройства в LiveWallpaper

-так первым, если я хочу получить доступ к данным из SDCard я поставил некоторые Состояние

 if (Environment.getExternalStorageState().equals(
       Environment.MEDIA_MOUNTED)) { 

это работает прекрасно, теперь, когда я перезагрузить устройство, в то время запуска моего устройства, мои обои хотят получить доступ к базе данных, поэтому он будет первым проверить выше условие, но он будет возвращать FALSE

Может быть SDCARD устанавливается через некоторое время запуска ОС Android ...

так может кто-нибудь предложить мне, как решить эту проблему, из-за большого размера базы данных я должен поставить его на SDCARD

+0

Все необходимые разрешения на чтение/запись, предоставленные в AndroidManifest? – AndyFaizan

+0

Думаю, это связано с тем, что после перезагрузки sdcard необходимо установить. Выполняет сканирование носителей на SD-карте. Вы можете обмануть пользователя, сохранив текущие используемые обои во внутреннем хранилище. – Pankaj

ответ

0

Может быть SDCARD устанавливается через некоторое время запуска ОС Android

Да Правый, так что регистрируйтесь action.MEDIA_MOUNTED BroadcastReceiver, чтобы получить передачу, когда SD-карта установлена.

Первый Регистрация BroadcastReceiver в AndroidManifest.xml:

<receiver 
    android:enabled="true" 
    android:exported="false" 
    android:name=".ExternalStorageInfoReceiver"> 
    <intent-filter> 
      <action android:name="android.intent.action.MEDIA_MOUNTED"/> 
    </intent-filter> 
    </receiver> 

В ExternalStorageInfoReceiver сделать работу внутри OnReceive метода:

public class ExternalStorageInfoReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     //change wallpaper here.... 
    } 
} 
0

Если приложение хранится на внешнем хранилище, то вы должны предоставить следующие намерения фильтра ,

<receiver android:name=".YourBroadcastReceiver"> 
     <intent-filter>     
      <action android:name="android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" />     
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
</receiver> 

См. App Install Location.