欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【AndroidTV】如何自定义屏保、更改屏保时长

程序员文章站 2024-03-16 20:46:46
...

目录

系统屏保源码有哪些

如果要自定义屏保可以参考这里的源码,清晰易懂,比网上教程好

屏保 源码位置
BasicDream packages\screensavers下
PhotoTable packages\screensavers下
WebView package\screensavers下
SystemUI frameworks\base\packages下

在设置中显示的屏保选项有哪些

自带的屏保选项
TurnOff
Colors
BackDrop

其中BackDrop没有源码,是google现成的apk。
SystemUI的是DessertCase。没有显示出来,是因为在SystemUI的AndroidManifest.xml中,定义这个enable为false。

  <!-- a gallery of delicious treats -->
        <service
            android:name=".DessertCaseDream"
            android:exported="true"
            android:label="@string/dessert_case"
          android:permission="android.permission.BIND_DREAM_SERVICE"
            android:enabled="false"
            android:process=":sweetsweetdesserts"
            >
            <intent-filter>
                <action android:name="android.service.dreams.DreamService" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </service>

屏保选项是如何获得的

学习这个2个类:
1.com.android.settingslib.dream.DreamBackend.java
2.com.android.tv.settings.device.display.daydream.DaydreamFragment.java。

多久出现屏保

系统可设定的最短时长是5分钟。
要更改时长,可以改Settings的源码(在packages\apps\)下。
详细看
com.android.tv.settings.device.display.daydream.DaydreamFragment.java。

修改方法

Settings源码
res\values\arrays.xml中修改sleep_timeout_values数组即可

<!-- Do not translate. -->
<string-array name="sleep_timeout_values" translatable="false">

    <!-- Do not translate. -->
    <item>300000</item>
    <!-- Do not translate. -->
    <item>900000</item>
    <!-- Do not translate. -->
    <item>1800000</item>
    <!-- Do not translate. -->
    <item>3600000</item>
    <!-- Do not translate. -->
    <item>7200000</item>
    <!-- Do not translate. -->
    <item>-1</item>
</string-array>

现在系统原生是这样的,改成满足你需求的即可。

我的应用

项目需求

更改屏保图片,用于参展

处理方式

在SystemUI中新增自己的屏保文件、修改AndroidManifest.xml,替换机顶盒中的应用后,选中我们自己的屏保,OK。

遇到一个诡异的问题

我把新的屏保图片放进res\drawable-nodpi时,在java文件中引用,编译总是说无法识别这个文件,后来只能把新文件命名为和原来已经存在的文件一致,比如dessert_android这类命名。

相关标签: 屏保 AndroidTV