Dispositivos dedicados

O Google Glass normalmente é configurado para ser usado como um dispositivo dedicado com um pequeno número de aplicativos que compõem uma solução empresarial. O guia a seguir demonstra como configurar o Google Glass como um dispositivo dedicado.

Provisionando

O provisionamento sem toque no Glass Enterprise Edition 2 instala e configura um app de administração que é transferido por download dos metadados fornecidos em um código QR. Este aplicativo pode aproveitar a API DevicePolicyManager, que é o método preferido para gerenciar a configuração do dispositivo.

Substituir tela de início

Para configurar um dispositivo dedicado, substitua o aplicativo da tela de início. Isso garante que o aplicativo dedicado seja iniciado automaticamente após a reinicialização do dispositivo. O conteúdo a seguir descreve as tarefas envolvidas na preparação de um aplicativo e na configuração dele como a tela de início:

  • Filtro de intent de atividade
  • Definir uma nova tela de início
  • Filtro de intent de atividade

    Você precisa adicionar as seguintes categorias à atividade principal no manifesto do seu aplicativo:

    <intent-filter>
      <action android:name="android.intent.action.MAIN"/>
      <category android:name="android.intent.category.LAUNCHER"/>
    
      <category android:name="android.intent.category.HOME"/>
      <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
    

    Definir uma nova tela de início

    Para definir uma nova tela de início, chame addPersistentPreferActivity() no aplicativo de administrador. Isso só funcionará se o dispositivo já tiver sido provisionado. Para dispositivos não provisionados, selecione uma nova tela de início na IU do dispositivo.

    Adicionar atividade preferencial persistente

    Esse método permite que você defina determinada componentName como a tela de início do dispositivo, sem interagir com ele.

    Kotlin

    val filter = IntentFilter(Intent.ACTION_MAIN)
    filter.addCategory(Intent.CATEGORY_HOME)
    filter.addCategory(Intent.CATEGORY_DEFAULT)
    
    val componentName = ComponentName(PACKAGE_NAME, CLASS_NAME)
    val devicePolicyManager: DevicePolicyManager =
        context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
    val adminName = getComponentName(context)
    devicePolicyManager.addPersistentPreferredActivity(adminName, filter, componentName)
    

    Java

    final IntentFilter filter = new IntentFilter(Intent.ACTION_MAIN);
    filter.addCategory(Intent.CATEGORY_HOME);
    filter.addCategory(Intent.CATEGORY_DEFAULT);
    
    final ComponentName componentName = new ComponentName(PACKAGE_NAME, CLASS_NAME);
    DevicePolicyManager devicePolicyManager =
        (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
    final adminName = getComponentName(context);
    devicePolicyManager.addPersistentPreferredActivity(adminName, filter, componentName);
    

    Usar a IU no dispositivo

    Use um dos seguintes métodos para mostrar uma caixa de diálogo de seleção de tela de início:

    Usando o gesto de deslizar para cima nas configurações

    Deslize para trás na tela inicial para mostrar a tela de resumo das configurações. Em seguida, toque para entrar na tela de configurações. Deslize para cima para exibir a caixa de diálogo.

    Como usar intents no aplicativo

    Kotlin

    val intent = Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);
    

    Java

    final Intent intent = new Intent(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);
    
    Como usar o comando adb

    adb shell am start -a android.intent.action.MAIN -c android.intent.category.HOME

    Deslize para frente e para trás no touchpad para selecionar o app preferido e toque para confirmar. Use o mesmo método para selecionar o botão "Always"

    Modo de bloqueio de tarefas

    O modo de bloqueio de tarefas permite criar uma lista de pacotes que podem ser executados no dispositivo.

    Definir os pacotes permitidos

    O snippet a seguir mostra como definir a lista de pacotes:

    Kotlin

    private val KIOSK_PACKAGE = "com.example.kiosk"
    private val PLAYER_PACKAGE = "com.example.player"
    private val APP_PACKAGES = arrayOf(KIOSK_PACKAGE, PLAYER_PACKAGE)
    
    val devicePolicyManager: DevicePolicyManager =
      context.getSystemService(Context.DEVICE_POLICY_SERVICE) as DevicePolicyManager
    val adminName = getComponentName(context)
    devicePolicyManager.setLockTaskPackages(adminName, APP_PACKAGES)
    

    Java

    private static final String KIOSK_PACKAGE = "com.example.kiosk";
    private static final String PLAYER_PACKAGE = "com.example.player";
    private static final String[] APP_PACKAGES = {KIOSK_PACKAGE, PLAYER_PACKAGE};
    
    final DevicePolicyManager devicePolicyManager =
        (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
    final ComponentName adminName = getComponentName(context);
    devicePolicyManager.setLockTaskPackages(adminName, APP_PACKAGES);
    

    Iniciar modo de tarefa de bloqueio

    O modo de bloqueio de tarefas pode ser iniciado pela atividade do aplicativo. O snippet a seguir mostra como fazer isso:

    Kotlin

    override fun onResume() {
        super.onResume()
        activity.startLockTask()
    }
    

    Java

    @Override
    public void onResume() {
      super.onResume();
      getActivity().startLockTask();
    }