gpt4 book ai didi

java - 如何从 Constant Value 类中分配 list 中的 API key ?

转载 作者:行者123 更新时间:2023-12-01 18:19:02 24 4
gpt4 key购买 nike

我正在尝试为 list 中的以下元分配值。

目前我已经从 string.xml 类中分配了值。

<meta-data
android:name="com.google.android.geo.API_KEY"
android:value= "@string/MAPS_API_KEY" />

但我想要这样的东西..

<meta-data
android:name="com.google.android.geo.API_KEY"
android:value= com.packagename.MyConstantInterface.MAPS_API_KEY />

我查了很多资料,但没有找到好的解决方案。

注意:我从服务器获取所有 API key ,将 key 存储在 snappy 数据库中,然后将 key 从 snappy db 分配给 MyConstantInterface。

最佳答案

第1步:在主文件夹中创建一个名为secrets.properties的文件(即在local.properties、app、build、gradle、README.md等下面)

第 2 步:将您的 API key 粘贴到 Secrets.properties 中(即 GOOGLE_API_KEY、FACEBOOK_APP_ID 等)

第 3 步:同步项目或重建。第4步:打开build.gradle(app)并创建一个def函数来访问secrets.properties中声明的 key 。

def getApiKey(){
def Properties props = new Properties()
props.load(new FileInputStream(new File('secrets.properties')))
return props['GOOGLE_MAPS_API_KEY']
}

第5步:使用manifestPlaceholders在defaultConfig中为函数getApiKey()创建一个变量,以便在AndroidManifest.xml中使用它

defaultConfig {
defaultPublishConfig 'debug'
applicationId "YOUR_APPLICATION_ID"
minSdkVersion 19
targetSdkVersion 27
versionCode 1000
versionName '0.1.0'
manifestPlaceholders = [ GOOGLE_MAPS_API_KEY:getApiKey()]
}

你可以走了。现在 GOOGLE_MAPS_API_KEY 变量是公共(public)的,可以在 AndroidManifest.xml 中使用,如下所示

<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="${GOOGLE_MAPS_API_KEY}" />

manifestPlaceholders — It helps to create a global variable that can be used only in AndroidManifest.xml

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
, 'proguard-rules.pro'
}


applicationVariants.all { variant ->
variant.buildConfigField "String", "GOOGLE_MAPS_API_KEY"
, "\""+getApiKey()+"\""
}
}

而且,您可以在 Java 或 Kotlin 类中使用 GOOGLE_MAPS_API_KEY,例如

BuildConfig.GOOGLE_MAPS_API_KEY

Finally, don’t forget to add secrets.properties to your .gitignore file.

解决方案来自This Medium post作者:钱德拉塞卡·卡普萨米

关于java - 如何从 Constant Value 类中分配 list 中的 API key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60314238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com