android自定义系统屏保Dream

一:自定义屏保Dream的创建

1.首先创建一个Dream类,必须继承系统DreamService:

public class Album extends DreamService {

    @Override
    public void onCreate() {
        super.onCreate();
        setInteractive(false);
    }

    @Override
    public void onAttachedToWindow() {
        super.onAttachedToWindow();
        setInteractive(false);
//        setLowProfile(true);
        setFullscreen(true);
        setContentView(R.layout.album_layout);
    }
    
    @Override
    public void onDreamingStarted() {//互动屏保已经启动,这里可以开始播放动画或者其他操作
        super.onDreamingStarted();

    }

    @Override
    public void onDreamingStopped() {//在停止 onDreamingStarted() 里启动的东西
        super.onDreamingStopped();
    }

    @Override
    public void onDetachedFromWindow() {//在这里回收前面调用的资源(比如 handlers 和 listeners)
        super.onDetachedFromWindow();
    }
}

2.必须在AndroidMainfest.xml中注册这个屏保服务:

<!-- 相册屏保 -->
        <service
            android:name=".dream.Album"
            android:exported="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/album"
            android:permission="android.permission.BIND_DREAM_SERVICE">
            <intent-filter>
                <action android:name="android.service.dreams.DreamService" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </service>

二:屏保的设置

private DreamBackend mBackend;

	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_screen_saver);
        mBackend = DreamBackend.getInstance(ScreenSaverActivity.this);
        ComponentName componentName = mBackend.getActiveDream();
        Log.e(TAG, "当前系统设置的Dream==包名:" + componentName.getPackageName() + ",类名:" + componentName.getClassName());
    }

/**
*设置屏保
*/
private void setDream(){
	mBackend.setActiveDream(new ComponentName("com.test.settings", "com.test.settings.dream.Album"));
}

注意:该屏保应用必须设置进android系统白名单里面,才会生效

发布了22 篇原创文章 · 获赞 2 · 访问量 475

猜你喜欢

转载自blog.csdn.net/m0_37782318/article/details/105205293
今日推荐