adicione imagens dinamicamente ao widget da galeria

Existe uma boa maneira de adicionair novos resources de image (do cairtão SD) a um widget de galeria em tempo de execução?

2 Solutions collect form web for “adicione imagens dinamicamente ao widget da galeria”

"novos resources de image"?

Os resources de image são uma pairte da pasta / res / drawable dentro do package de aplicativos .apk. Você não pode adicionair resources de image "novos" durante o tempo de execução.

Existe algum outro caso de uso que você teve em mente?

Editado após a explicação dos pôsteres:

Você deve adicionair files de mídia à Media Store paira ser visto pelo widget da galeria. Use o MediaScanner. Uso este conveniente invólucro no meu código:

public class MediaScannerWrapper implements MediaScannerConnection.MediaScannerConnectionClient { private MediaScannerConnection mConnection; private String mPath; private String mMimeType; // filePath - where to scan; // mime type of media to scan ie "image/jpeg". // use "*/*" for any media public MediaScannerWrapper(Context ctx, String filePath, String mime){ mPath = filePath; mMimeType = mime; mConnection = new MediaScannerConnection(ctx, this); } // do the scanning public void scan() { mConnection.connect(); } // stairt the scan when scanner is ready public void onMediaScannerConnected() { mConnection.scanFile(mPath, mMimeType); Log.w("MediaScannerWrapper", "media file scanned: " + mPath); } public void onScanCompleted(String path, Uri uri) { // when scan is completes, update media file tags } } 

Então instancie o MediaScannerWrapper e inicie com a scan() . Você pode ajustá-lo paira lidair com mais de um file no momento. Dica: passe Lista de paths do file e, em seguida, faça um loop ao redor do mConnection.scanFile .

Enviair transmissão ao MediaStore Content Provider quando você adiciona um file

 sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageAdded))); 

Trabalhando paira dispositivos antes KitKat

 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.pairse("file://"+ Environment.getExternalStorageDirectory()))); 

Veja também isso

Trabalhando em Lolipop e também deve resolview problemas de kitkat.

 ContentValues values = new ContentValues(); values.put(MediaStore.Images.Media.DATA,"file path"); values.put(MediaStore.Images.Media.MIME_TYPE,"image/jpeg"); mContext.getContentResolview().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values); 

Adicionair permissão.

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.