Özel cihazlar

Glass genellikle kurumsal bir çözüm oluşturan az sayıda uygulamayla özel bir cihaz olarak kullanılacak şekilde yapılandırılır. Aşağıdaki kılavuzda, Glass'ın özel bir cihaz olarak nasıl kurulacağı gösterilmektedir.

Temel hazırlık yapılıyor

Glass Enterprise Edition 2'de el değmeden temel hazırlık, bir QR kodunda sağlanan meta verilerden indirilen bir yönetici uygulamasını yükleyip yapılandırır. Bu uygulama, cihazın yapılandırmasını yönetmek için tercih edilen DevicePolicyManager API'sinden yararlanabilir.

Başlatıcıyı değiştir

Özel bir cihaz kurmak için başlatıcı uygulamasını değiştirmeniz gerekir. Bu şekilde, cihaz yeniden başlatıldığında özel uygulama otomatik olarak başlatılır. Aşağıdaki içerik, bir uygulamayı hazırlama ve başlatıcı olarak ayarlamayla ilgili görevleri özetlemektedir:

  • Etkinlik amacı filtresi
  • Yeni başlatıcı ayarlama
  • Etkinlik amacı filtresi

    Aşağıdaki kategorileri uygulamanızın manifest dosyasındaki ana etkinliğe eklemeniz gerekir:

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

    Yeni bir başlatıcı ayarla

    Yeni bir başlatıcı ayarlamak için yönetici uygulamasından PermanentlyPermanentlyActivity() çağrısı yapın. Bu özellik yalnızca cihazın temel hazırlığı zaten yapılmışsa çalışır. Temel hazırlığı yapılmamış cihazlar için cihazdaki kullanıcı arayüzünden yeni bir başlatıcı seçin.

    Kalıcı tercih edilen etkinlik ekleme

    Bu yöntem, cihazla etkileşime girmeden belirli bir componentName cihazını cihazınızın başlatıcısı olarak ayarlamanıza olanak tanır.

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

    Kullanıcı arayüzünü cihazda kullan

    Ekranda bir başlatıcı seçim iletişim kutusu göstermek için aşağıdaki yöntemlerden birini kullanın:

    Ayarlarda yukarı kaydırma hareketini kullanma

    Ayarlar özet ekranını görüntülemek için ana ekranda geri kaydırın. Ardından ayarlar ekranına girmek için dokunun. İletişim kutusunu göstermek için yukarı kaydırın.

    Uygulamada amaç kullanma

    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);
    
    Adb komutunu kullanma

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

    Tercih ettiğiniz uygulamayı seçmek için dokunmatik alanda ileri ve geri kaydırın ve onaylamak için dokunun. "Her zaman" düğmesini seçmek için aynı yöntemi kullanın.

    Görev modunu kilitleme

    Kilit görevi modu, cihazda çalıştırılmasına izin verilen paketlerin listesini oluşturmanıza olanak tanır.

    İzin verilen paketleri belirleyin

    Aşağıdaki snippet'te, paket listesini nasıl ayarlayacağınız gösterilmektedir:

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

    Kilitleme görevi modunu başlat

    Kilitleme modu, uygulamanın etkinliği tarafından başlatılabilir. Aşağıdaki snippet'te bunu nasıl yapabileceğiniz gösterilmektedir:

    Kotlin

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

    Java

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