使用 android EncryptedSharedPreference 的最低 API 级别?

     2023-04-14     257

关键词:

【中文标题】使用 android EncryptedSharedPreference 的最低 API 级别?【英文标题】:Minimum API level for using android EncryptedSharedPreference? 【发布时间】:2020-06-18 20:43:43 【问题描述】:

android encryptedShared 首选项所需的最低 API 级别是多少?

我正在使用以下依赖项

implementation "androidx.security:security-crypto:1.0.0-alpha02"

我的最低 API 级别是 21,我读过共享偏好所需的最低 API 是 23。

如果我可以在我的代码中放置类似 API 23 之类的逻辑,请使用常规 sharedPreference(我使用服务器来存储关键数据)并且我永远不会初始化加密共享首选项,并且在 API23+ 中我使用加密共享首选项。

我的代码在低于 API23 的情况下编译和运行会不会出现任何问题?

【问题讨论】:

支持 API 级别 21 可用 developer.android.com/jetpack/androidx/releases/… ,是的,您可以通过检查操作系统版本来创建您的偏好 【参考方案1】:

我的代码在低于 API23 的情况下编译和运行会不会出现任何问题?

是的

用于通过 API 级别检查创建 SharedPreferencesEncryptedSharedPreferences

object PrefMgr 
  private var preferences: SharedPreferences? = null

  init 
    preferences = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
        EncryptedSharedPreferences.create(
            context,
            APP_PREF_FILE,
            MasterKey.Builder(context)
                .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
                .build(),
            EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
            EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
        )
     else 
        context.getSharedPreferences(APP_PREF_FILE, Context.MODE_PRIVATE)
    
  

【讨论】:

另见github.com/emeraldsanto/react-native-encrypted-storage/issues/…:添加AndroidManifest<uses-sdk tools:overrideLibrary="androidx.security" />,如果您使用 API 级别 是的,我同意@CoolMind 感谢 EncryptedSharedPreferences 创建的更新代码。另请参阅migration to EncryptedSharedPreferences。

何时使用“?android”或“@android”?

】何时使用“?android”或“@android”?【英文标题】:Whentouse"?android"or"@android"?【发布时间】:2011-12-0813:50:00【问题描述】:我是新手,正在尝试理解以下XML代码:查看developer.android.com上的文档,它说“starStyle”... 查看详情

使用内部 android 类

】使用内部android类【英文标题】:Usinginternalandroidclasses【发布时间】:2013-07-0511:25:05【问题描述】:我想使用一个android内部类,com.android.internal.widget.LockPatternUtils。我搜索了示例,我得到了这个:LockPatternUtilslpu=newLockPatternUtils(t... 查看详情

想要使用cordova/android禁用android的HardBack按钮

】想要使用cordova/android禁用android的HardBack按钮【英文标题】:WanttoDisableHardBackbuttonofandroidusingcordova/android【发布时间】:2020-05-2818:34:24【问题描述】:我想使用Cordova或android禁用android上的精装按钮我尝试在android和android中放置代... 查看详情

Android 活动组使用

】Android活动组使用【英文标题】:AndroidActivityGroupuse【发布时间】:2012-03-1114:05:45【问题描述】:如何在android应用程序中使用ActivityGroup,以便不同的Activity能够根据意图导航??谁能给我更好的编码示例以在android中使用活动组... 查看详情

如何使用 android:maxWidth?

】如何使用android:maxWidth?【英文标题】:Howtouseandroid:maxWidth?【发布时间】:2012-11-2422:44:28【问题描述】:我想设置编辑框的最大宽度。所以我创建了这个小布局:<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:lay... 查看详情

如何使用 Android 动画播放“滴答滴答”声音(可能使用“Android MediaPlayer / SoundPool”)?

】如何使用Android动画播放“滴答滴答”声音(可能使用“AndroidMediaPlayer/SoundPool”)?【英文标题】:HowtoPlay\'TickTick\'SoundwithAndroidAnimation(possiblywith`AndroidMediaPlayer/SoundPool`)?【发布时间】:2020-04-0603:30:21【问题描述】:我有一个自... 查看详情

Android:我们啥时候使用 getIntent()?

】Android:我们啥时候使用getIntent()?【英文标题】:Android:WhendoweusegetIntent()?Android:我们什么时候使用getIntent()?【发布时间】:2014-12-3013:36:53【问题描述】:我不明白我们为什么要使用方法getIntent()。因为,当我们需要那个方法... 查看详情

android 使用 android 前置摄像头拍照

】android使用android前置摄像头拍照【英文标题】:androidtakephotousingandroidfrontcamera【发布时间】:2015-02-2110:09:22【问题描述】:我试过了privateCameraopenFrontFacingCamera()Cameracamera=null;//Lookforfront-facingcamera,usingtheGingerbreadAPI.//Javaref 查看详情

Android - 无法使用 traceview

】Android-无法使用traceview【英文标题】:Android-Can\'tusetraceview【发布时间】:2011-06-2711:03:06【问题描述】:我正在尝试使用traceview对Android应用程序运行一些分析。我已经用以下几行包装了要跟踪的代码:Debug.startMethodTracing("xxx");//... 查看详情

android逆向android权限(android逆向中使用的android.permission权限|android系统中的linux用户权限)

文章目录一、Android逆向中使用的android.permission权限二、Android系统中的Linux用户权限一、Android逆向中使用的android.permission权限Android逆向中使用的权限:android.permission.SET_DEBUG_APP:调试程序,应用有该权限后,可以指定调试相关的程序;an... 查看详情

android逆向android权限(android逆向中使用的android.permission权限|android系统中的linux用户权限)

文章目录一、Android逆向中使用的android.permission权限二、Android系统中的Linux用户权限一、Android逆向中使用的android.permission权限Android逆向中使用的权限:android.permission.SET_DEBUG_APP:调试程序,应用有该权限后,可以指定调试相关的程序;an... 查看详情

使用 Kerberos 进行 Android 身份验证

】使用Kerberos进行Android身份验证【英文标题】:AndroidauthenticatingwithKerberos【发布时间】:2011-04-0321:00:46【问题描述】:我正在尝试创建一个使用现有网络服务的Android应用程序。但是,现有的Web服务使用Kerberos进行身份验证,我无... 查看详情

如何使用 Android 片段?

】如何使用Android片段?【英文标题】:HowtouseAndroidFragments?【发布时间】:2012-02-2614:23:29【问题描述】:我正在查看一些演示代码,这些代码展示了如何使用片段适配器(在本例中为选项卡适配器)。我很好奇instantiate()方法究竟... 查看详情

使用 php 在 android 中使用 websocket 实现聊天

】使用php在android中使用websocket实现聊天【英文标题】:Implementchatusingwebsocketinandroidwithphp【发布时间】:2014-08-1705:55:04【问题描述】:我想通过php在android中使用websocket实现聊天功能。我需要同样的php代码。场景是这样的。android... 查看详情

Android:离线使用 developer.android.com?

】Android:离线使用developer.android.com?【英文标题】:Android:usedeveloper.android.comoffline?【发布时间】:2015-11-1800:49:25【问题描述】:我住在伊朗,Google阻止伊朗互联网用户访问其某些实用程序,例如AndroidDevelopers网站。每次我要使... 查看详情

Android:使用 JDBC? [复制]

】Android:使用JDBC?[复制]【英文标题】:Android:usingJDBC?[duplicate]【发布时间】:2011-07-1408:52:19【问题描述】:你能在android上使用JDBC驱动吗?我找到了应该支持android的blobdb,但我似乎无法让它工作我得到java.sql.SQLException:尝试从... 查看详情

如何在 android 应用程序中使用 OSM 地图。?有啥教程可以学习在android中使用OSM吗?

】如何在android应用程序中使用OSM地图。?有啥教程可以学习在android中使用OSM吗?【英文标题】:HowtouseOSMmapinanandroidapplication.?IsthereanytutorialtolearnaboutusingOSMinandroid.?如何在android应用程序中使用OSM地图。?有什么教程可以学习在and... 查看详情

使用带有内部库的 maven 构建 android 项目

】使用带有内部库的maven构建android项目【英文标题】:Buildandroidprojectusingmavenwithinternallibraries【发布时间】:2014-04-2215:08:51【问题描述】:我有一个使用原生android库和内部库的android库。如果我像android应用程序一样从eclipse执行所... 查看详情