Vamos começar

Esta página descreve como configurar o SDK do Android. Se você ainda não tiver concluído os pré-requisitos, faça isso primeiro.

Dependência

Importe o SDK "searchinapps" para um projeto do Android do GMaven. Abra o arquivo build.gradle do projeto, declare o repositório Maven do Google e adicione a dependência do SDK:

repositories {
  google()
  ...
}

dependencies {
  implementation 'com.google.android.libraries.searchinapps:searchinapps:[version]'
  ...
}

Em seguida, crie o projeto usando o Gradle.

Configuração do AndroidManifest.xml

Atualize o arquivo AndroidManifest.xml do projeto do Android para adicionar os seguintes metadados:

  1. com.google.searchinapps.API_KEY: o valor de string da chave da API do SDK (consulte acima).
  2. com.google.searchinapps.CLIENT_ID: o valor de string do identificador do cliente do app (consulte acima).

Exemplo de 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>

Inicialização

Para usar as funções do SDK "searchinapps", na Activity de destino ou em qualquer classe responsável por recuperar resultados da pesquisa, crie uma instância SearchInAppsService. Você pode fazer isso na função onCreate da classe de atividade e também transmitir o contexto da atividade ou do aplicativo.

Exemplo de código

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() } }
    ...
  }
  ...
}

Próxima etapa: recursos de pesquisa