本页介绍了如何设置 Android SDK。如果您尚未 完成前提条件,请先完成 这些条件。
依赖项
从 GMaven 将“searchinapps”SDK 导入到 Android 项目中。打开您的
项目 build.gradle 文件,声明 Google Maven 制品库 并添加
SDK 依赖项:
repositories {
google()
...
}
dependencies {
implementation 'com.google.android.libraries.searchinapps:searchinapps:[version]'
...
}
然后使用 Gradle 构建项目。
AndroidManifest.xml 配置
更新 Android 项目 AndroidManifest.xml 文件以添加以下元数据:
com.google.searchinapps.API_KEY:SDK API 密钥的字符串值(见上文)。com.google.searchinapps.CLIENT_ID:应用的客户端标识符的字符串值(见上文)。
AndroidManifest.xml 示例
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.samples.quickstart.searchinapps">
<application
...
>
<meta-data
android:name="com.google.searchinapps.API_KEY"
android:value="[your api key]"/>
<meta-data
android:name="com.google.searchinapps.CLIENT_ID"
android:value="[your client id]"/>
...
</application>
</manifest>
初始化
如需使用“searchinapps”SDK 的函数,请在目标 Activity 或负责检索搜索结果的任何类中创建一个 SearchInAppsService 实例(您可以在 Activity 类的 onCreate 函数中执行此操作),并将 activity 或应用 Context 传递给该实例。
示例代码
Java
package ...;
...
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.libraries.searchinapps.SearchInAppsService;
...
public class MainActivity extends AppCompatActivity {
private SearchInAppsService service;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
service = SearchInAppsService.create(this);
...
}
@Override
public void onDestroy() {
service.shutDown();
super.onDestroy();
}
}
Jetpack Compose
package ...
...
import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.platform.LocalContext
import com.google.android.libraries.searchinapps.SearchInAppsService
...
class MainActivityJetpack : AppCompatActivity() {
private var service: SearchInAppsService? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
SearchSuggestionsUI()
}
}
@Composable
fun SearchSuggestionsUI() {
...
var service by remember {
mutableStateOf<SearchInAppsService?>(
SearchInAppsService.create(LocalContext.current))
}
...
DisposableEffect(Unit) { onDispose { service?.shutDown() } }
...
}
...
}