小编ahe*_*man的帖子

Android 12 闪屏 API 定制

自从 Android 在 Android 12 中发布了新的 Splash Screen API 以来,许多应用程序都存在重复的启动屏幕、缺乏自定义等问题。

现在,可以设置背景颜色和中间的图标,但是可以自定义更多吗?由于现在我们只能使用单色背景和不可调整大小的徽标图标,这看起来不太好。

我想要实现的是一个自定义的启动屏幕,带有可绘制的图像作为背景(或包含 2 个项目的图层列表 - 一个背景图像和一个居中徽标),因为它可以在 Android 12 之前使用。

有人成功地实现了这种行为吗?

有一种解决方法可以将 windowIsTranslucent 属性设置为 true 并仅显示第二个启动画面(右侧的启动画面),但它会带来糟糕的用户体验,因为应用程序似乎有几秒钟没有响应。

customization android splash-screen kotlin android-12

25
推荐指数
1
解决办法
7381
查看次数

AndroidX 安全 EncryptedSharedPreferences v1.1.0 /w API 21 问题

我决定使用来自 AndroidX 安全库的新 EncryptedSharedPreferences。由于该应用程序支持 API 21 及更高版本,我决定试用这个新的 v1.1.0-alpha02 版本,因为它支持 API 21+

因此,我成功实现了 API 23+,但对于不支持 Android KeyStore 的旧版本,我无法正确实现,并且没有确切的说明应该如何创建主密钥以使其以某种方式工作.

初始化 SharedPrefs 的代码:

EncryptedSharedPreferences.create(
        "prefs_name",
        createMasterKey(),
        App.appContext,
        EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
        EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
    )
Run Code Online (Sandbox Code Playgroud)

使用此功能创建主密钥

   private fun createMasterKey(): String {
        return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC)
        } else {
            val alias = "my_alias"
            val start: Calendar = GregorianCalendar()
            val end: Calendar = GregorianCalendar()
            end.add(Calendar.YEAR, 30)

            val spec = KeyPairGeneratorSpec.Builder(App.appContext)
                .setAlias(alias)
                .setSubject(X500Principal("CN=$alias"))
                .setSerialNumber(BigInteger.valueOf(abs(alias.hashCode()).toLong()))
                .setStartDate(start.time).setEndDate(end.time)
                .build()

            val kpGenerator: KeyPairGenerator = KeyPairGenerator.getInstance(
                "RSA",
                "AndroidKeyStore"
            )
            kpGenerator.initialize(spec)
            val kp: KeyPair …
Run Code Online (Sandbox Code Playgroud)

security android androidx encrypted-shared-preference

21
推荐指数
4
解决办法
4471
查看次数

Kotlin函数用于获取子字符串的开始和结束索引

我想知道是否有一些方法或方法组合可以获得这些结果。

我的意思是你有一个字符串 ex。"Hello world, how are you?" 我想实现以下功能,以获取该字符串中子字符串的开始和结束索引。

前任。substring = "world",起始索引为 6,结束索引为 10

标准 kotlin 库中有类似的东西吗?

string android substring kotlin

6
推荐指数
1
解决办法
4835
查看次数

SparseArray 错误:调用需要 API 级别 S

将compileSdkVersion增加到31(Android 12)后,执行lint检查时,出现以下问题:

错误:调用需要 API 级别 S(当前最小值为 23):android.util.SparseArray#set [NewApi]

增加此值后是否有人遇到类似的问题,为什么会发生?

android lint sparse-matrix kotlin android-12

4
推荐指数
1
解决办法
1867
查看次数