Özel cihazlar

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

Temel hazırlık yapılıyor

Glass Enterprise Edition 2'de kolay dokunma ile hazırlama, QR kodunda sağlanan meta verilerden indirilen bir yönetici uygulamasını yükler ve yapılandırır. Bu uygulama, cihazın yapılandırmasını yönetmek için tercih edilen yöntem olan DevicePolicyManager API'sinden yararlanabilir.

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

Özel bir cihaz ayarlamak için başlatıcı uygulamasını değiştirmeniz gerekir. Bu sayede, cihaz yeniden başlatıldıktan sonra özel uygulamanın otomatik olarak başlatılması sağlanır. Aşağıdaki içerikte, bir uygulamayı hazırlama ve başlatıcı olarak ayarlama ile ilgili görevler özetlenmektedir:

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

    Uygulamanızın manifest dosyasındaki ana etkinliğe aşağıdaki kategorileri 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ı ayarlama

    Yeni bir başlatıcı ayarlamak için yönetici uygulamasından addPersistentPreferredActivity() işlevini çağırın. Bu özellik yalnızca cihazın temel hazırlığı yapılmışsa çalışır. Hazır hale getirilmemiş cihazlarda, cihazdaki kullanıcı arayüzünden yeni bir başlatıcı seçin.

    Kalıcı tercih edilen aktivite ekleme

    Bu yöntem, cihazla etkileşime girmeden belirli bir componentName öğesini cihazı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);

    Cihazda kullanıcı arayüzünü kullanma

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

    Ayarlarda yukarı kaydırma dokunma hareketini kullanma

    Ayarlar özeti ekranını göstermek için ana ekranda geriye doğru 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 yüzeyde ileri ve geri kaydırın, onaylamak için dokunun. "Her zaman" düğmesini seçmek için aynı yöntemi kullanın.

    Görev modunu kilitleme

    Kilitli görev modu, cihazda çalışmasına izin verilen paketlerin listesini oluşturmanıza olanak tanır.

    İzin verilen paketleri ayarlama

    Aşağıdaki snippet'te paket listesinin nasıl ayarlanacağı 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);

    Görev kilitleme modunu başlatma

    Kilit görevi 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();
    }