Как добавить значок приложения в живые обои Android, как обычные приложения

Можно ли добавить значок приложения, как показано в Live Aquarium Wallpaper (https://play.google.com/store/apps/details?id=fishnoodle.aquarium_free&feature=search_result#?t=W251bGwsMSwxLDEsImZpc2hub29kbGUuYXF1YXJpdW1fZnJlZSJd) Когда я устанавливаю это обои, он показывает и значок, который открывает страницу настроек при нажатии на нее. Кто-нибудь делал это раньше?


person SoH    schedule 10.05.2012    source источник
comment
извините, правильная ссылка: [play.google.com/store/apps/   -  person SoH    schedule 10.05.2012


Ответы (3)



Прежде всего, вы должны создать Activity:

public class SetLiveWallpaperActivity extends Activity{

@Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Intent intent = new Intent();
    if(Build.VERSION.SDK_INT >= 16)
    {
        intent.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
        intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT, new ComponentName(this, LibGDXWallpaperService.class));
    }
    else
    {
        intent.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
    }
    startActivity(intent);
    finish();
  } 
}

Затем в вашем AndroidManifest.xml вы должны добавить следующий код:

 <activity
        android:name=".SetLiveWallpaperActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Light.WallpaperSettings" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />               
        </intent-filter>           
 </activity>

Он создает значок, который открывает страницу настроек при нажатии на нее. Надеюсь, это поможет вам или кому-то еще.

person Nolesh    schedule 23.12.2013

Для тех, кто все еще ищет правильный ответ:

Вам нужно объявить тег <meta-data> внутри вашего объявления тега службы обоев внутри файла манифеста:

    <service
        android:name=".MyWallpaperService"
        android:enabled="true"
        android:label="My Wallpaper"
        android:permission="android.permission.BIND_WALLPAPER" >
        <intent-filter>
            <action android:name="android.service.wallpaper.WallpaperService"/>
        </intent-filter>

        <meta-data
            android:name="android.service.wallpaper"
            android:resource="@xml/wallpaper" >
        </meta-data>

    </service>

Этот тег указывает на xml-файл, содержащий информацию об значке обоев, который отображается в разделе «Живые обои»:

<?xml version="1.0" encoding="UTF-8"?>
<wallpaper
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="GIF Wallpaper"
    android:thumbnail="@android:drawable/btn_star">
</wallpaper>

Итак, android:thumbnail — это место, где вы устанавливаете ресурс для значка.

person revolutionary    schedule 23.08.2017