Dispositivi dedicati

In genere, Glass è configurato per essere utilizzato come dispositivo dedicato con un numero ridotto di applicazioni che compongono una soluzione aziendale. La seguente guida mostra come configurare Glass come dispositivo dedicato.

Provisioning

Il provisioning low-touch su Glass Enterprise Edition 2 installa e configura un'applicazione amministrativa scaricata dai metadati forniti in un codice QR. Questa applicazione può sfruttare l'API DevicePolicyManager, che è il metodo preferito per gestire la configurazione del dispositivo.

Sostituzione di Avvio app

Per configurare un dispositivo dedicato, devi sostituire l'applicazione di avvio. In questo modo, l'applicazione dedicata viene avviata automaticamente dopo il riavvio del dispositivo. I seguenti contenuti descrivono le attività coinvolte nella preparazione di un'applicazione e nella sua impostazione come launcher:

  • Filtro per intent attività
  • Impostare un nuovo launcher
  • Filtro per intent di attività

    Devi aggiungere le seguenti categorie all'attività principale nel manifest della tua applicazione:

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

    Impostare un nuovo launcher

    Per impostare un nuovo launcher, chiama addPersistentPreferredActivity() dall'applicazione di amministrazione. Questa operazione funziona solo se il dispositivo è già stato sottoposto a provisioning. Per i dispositivi non sottoposti a provisioning, seleziona un nuovo launcher dall'interfaccia utente del dispositivo.

    Aggiungere un'attività preferita persistente

    Questo metodo ti consente di impostare un determinato componentName come launcher del dispositivo, senza interagire con il dispositivo.

    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);

    Utilizzare l'interfaccia utente sul dispositivo

    Utilizza uno dei seguenti metodi per visualizzare una finestra di dialogo di selezione dell'app di avvio sullo schermo:

    Utilizzo del gesto di tocco e scorrimento verso l'alto nelle impostazioni

    Scorri indietro sulla schermata Home per visualizzare una schermata di riepilogo delle impostazioni. Quindi, tocca per accedere alla schermata delle impostazioni. Scorri verso l'alto per visualizzare la finestra di dialogo.

    Utilizzo dell'intent nell'applicazione

    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);
    Utilizzo del comando adb

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

    Scorri avanti e indietro sul touchpad per selezionare l'applicazione che preferisci e tocca per confermare. Utilizza lo stesso metodo per selezionare il pulsante "Sempre".

    Modalità di blocco attività

    La modalità Blocco attività consente di creare un elenco di pacchetti autorizzati a essere eseguiti sul dispositivo.

    Impostare i pacchetti consentiti

    Il seguente snippet mostra come impostare l'elenco dei pacchetti:

    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);

    Avviare la modalità di blocco attività

    La modalità di blocco attività può essere avviata dall'attività dell'applicazione. Il seguente snippet mostra come puoi farlo:

    Kotlin

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

    Java

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