我们正在更改应用程序内的区域设置,除指纹对话框中的提示外,其他所有功能均可用。无论我们设置哪种语言,我们总会有英文提示:
private fun setNewLocaleAndRestart(language: String) {
LocaleManager(this).setNewLocale(language)
//restarting app
val i = Intent(this, SplashScreenActivity::class.java)
startActivity(i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK))
finish()
System.exit(0)
}
class LocaleManager(val context: Context) {
val sharedPreferenceManager = createSharedPreferenceManager(context)
fun setLocale(): Context = updateResources()
fun setNewLocale(language: String): Context {
return updateResources(language)
}
private fun updateResources(l: String? = null): Context {
val language = l ?: sharedPreferenceManager.language
if (language.isBlank()) return context
val locale = Locale(language)
Locale.setDefault(locale)
val res = context.resources
val config = Configuration(res.configuration)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
config.setLocale(locale)
return context.createConfigurationContext(config)
} else @Suppress("DEPRECATION") {
config.locale = locale
res.updateConfiguration(config, res.displayMetrics)
return context
}
}
}
答案 0 :(得分:1)
我刚刚实现了BiometricManager androidx.biometric:biometric:1.0.1
,并且能够更改和定位提示的文本以及使用错误指纹的时间。
您只需要在strings.xml中定义这些字符串即可覆盖API上的字符串:
fingerprint_not_recognized
用于在使用错误的指纹时更改错误消息。这是在FingerprintHelperFragment.java
fingerprint_dialog_touch_sensor
更改提示。这是在FingerprintDialogFragment.java
答案 1 :(得分:0)
除指纹对话框中的提示外,所有其他功能均正常工作
所有系统对话框将使用用户为设备设置的语言。这包括用于生物识别的系统对话框。
答案 2 :(得分:0)
它已在BiometricPrompt版本androidx.biometric:biometric:1.0.0-alpha04
中修复。
您只需更改手机的区域设置,以反映更改。
如果您有兴趣,这里是commit
答案 3 :(得分:0)
我也在implementation 'androidx.biometric:biometric:1.0.1@aar'
上经历过。我将系统语言更改为英语以外的其他语言,但仍然显示“触摸指纹传感器”。有人对此有解决方案或解释吗?
它looks好像Android生物识别库已经支持所有语言,但似乎不起作用。我什至可以在Android build文件夹中看到生成的merger.xml
中的翻译。
在装有Android 9 /氧气9.0.10的OnePlus 5T上进行了测试。