Normalmente, o Glass é 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 Glass como um dispositivo dedicado.
Provisionamento
O provisionamento de baixo toque no Glass Enterprise Edition 2 instala e configura um aplicativo de administrador que é baixado dos metadados fornecidos em um QR code. Esse 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, é necessário substituir o aplicativo 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 definição dele como o iniciador:
- Filtro de intent de atividade
- Definir um novo iniciador
Filtro de intent de atividade
Adicione as seguintes categorias à atividade principal no manifesto do 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 um novo iniciador
Para definir um novo iniciador, chame addPersistentPreferredActivity() no aplicativo administrador. Isso só funciona se o dispositivo já tiver sido provisionado. Para dispositivos não provisionados, selecione um novo iniciador na interface do dispositivo.
Adicionar atividade preferida persistente
Esse método permite definir um determinado componentName
como o iniciador 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 interface no dispositivo
Use um dos seguintes métodos para mostrar uma caixa de diálogo de seleção de iniciador na tela:
Usar o gesto de deslizar para cima nas configurações
Deslize para trás na tela inicial para mostrar uma tela de resumo das configurações. Em seguida, toque para acessar a tela de configurações. Deslize para cima para mostrar 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 aplicativo preferido e toque para confirmar. Use o mesmo método para selecionar o botão "Sempre".
Modo de bloqueio de atividade
O modo de bloqueio de tarefas permite criar uma lista de pacotes que podem ser executados no dispositivo.
Definir 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 o modo de bloqueio de atividade
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(); }