2016-05-31 35 views
0

私は壁紙をcom.android.launcher3パッケージの描画可能リソースから設定するアプリケーションを開発しています。ある時点で壁紙が正しく設定されているかどうかを確認して、別の手順に進むことができます。Android - 現在の壁紙の名前を取得する方法

SOでの調査やグーグルで、現在の壁紙名を取得するための情報が見つかりませんでした。私も描画可能として、現在の壁紙を取得することができます

try { 
     WallpaperManager wallpaper_manager = WallpaperManager.getInstance(m_context); 

     Resources res  = m_context.getPackageManager().getResourcesForApplication("com.android.launcher3"); 
     int drawable_id  = res.getIdentifier(wallpaper_name, "drawable", "com.android.launcher3"); 
     Drawable drawable = res.getDrawable(drawable_id, null); 

     if(drawable != null) { 
      wallpaper_manager.setBitmap(((BitmapDrawable)drawable).getBitmap()); 
     } 

    } catch (PackageManager.NameNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

:ここ

は私が何の問題もない描画可能に設定する方法です

WallpaperManager wallpaper_manager = WallpaperManager.getInstance(m_context); 
Drawable drawable     = wallpaper_manager.getDrawable(); 

が、私は得ることができませんでした現在の壁紙の名前。

私は助けが必要です。

ありがとうございます。

答えて

-1

私はこの二つの選択肢しようとするだろう:あなたはこれを使用して情報を取得することができshouold wallpaperManager

を使用して

1.:

wallpaperManager.getWallpaperInfo(); 

これはどのWallpaperInfoオブジェクトを返します。壁紙に関するすべてのデータが含まれています。

詳しい情報 https://developer.android.com/reference/android/app/WallpaperManager.html

2.描画可能ファイルあなたはまた、このような描画可能なのURIを取得しようとすることができます

行き方:

String imageUri = "drawable://" + R.drawable.image; 

とファイル名を取得しますそこから。

お手伝いします。

+0

.getWallpaperInfo();現在の壁紙がライブ壁紙でない場合はnullになります。あなたの2番目の答えは、私は私のリソースにdrawableを持っていません。別のパッケージリソースからの描画可能なので、私はそのRクラスには到達できません。 –

関連する問題