通过Mirror API Glassware MenuItem打开GDK Glassware

时间:2014-01-07 06:21:29

标签: google-glass google-mirror-api google-gdk

我按照here所述集成了GDK Glassware和Mirror API Glassware。我需要使用Mirroe api Glassware app MenuItem打开GDK玻璃器皿应用程序。我可以发送意图数据包吗?有没有人对此有所了解。

谢谢。

2 个答案:

答案 0 :(得分:5)

我终于想出办法来做到这一点

  1. 首先将自定义方案添加到AndroidManifest.xml中的android活动标记

     
      <activity
            android:name="com.sanath.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
              <data android:scheme="com.sanath.scheme" />
              <action android:name="android.intent.action.VIEW" />
              <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
            <meta-data android:name="com.google.android.glass.VoiceTrigger"
            android:resource="@xml/vision_voice_trigger" />
        </activity>

  2. Then in Glassware timeline MenuItem add like following

    
    new MenuItem(){
    Action = "OPEN_URI",
    Payload = "com.sanath.scheme://open/Welcome/2014",
    Values = new MenuValue[]
            {
             new MenuValue()
             {
                DisplayName  = "Open",
                State = "DEFAULT"
             },
             new MenuValue()
             {
                DisplayName  = "Launching",
                State = "PENDING"
             },
             new MenuValue()
             {
                 DisplayName  = "Launched",
                 State = "CONFIRMED"
             },
             },
            },
        }
    

  3. Then inside your Activity OnCreate method you can get data as following

    
       Uri data = getIntent().getData();
            List params = data.getPathSegments();
            String param0 = params.get(0); // "welcome"
            String param1 = params.get(1); //"2014"

    String welcomeMsg = param0+" to "+param1; /*show time line card * */ Card welcomeCard =new Card(this); welcomeCard.setText(welcomeMsg); welcomeCard.setFootnote(param1); View view =welcomeCard.toView(); setContentView(view);
  4. new MenuItem(){ Action = "OPEN_URI", Payload = "com.sanath.scheme://open/Welcome/2014", Values = new MenuValue[] { new MenuValue() { DisplayName = "Open", State = "DEFAULT" }, new MenuValue() { DisplayName = "Launching", State = "PENDING" }, new MenuValue() { DisplayName = "Launched", State = "CONFIRMED" }, }, }, }

    Uri data = getIntent().getData(); List params = data.getPathSegments(); String param0 = params.get(0); // "welcome" String param1 = params.get(1); //"2014"

    String welcomeMsg = param0+" to "+param1; /*show time line card * */ Card welcomeCard =new Card(this); welcomeCard.setText(welcomeMsg); welcomeCard.setFootnote(param1); View view =welcomeCard.toView(); setContentView(view);

    希望这会有助于其他人

答案 1 :(得分:3)

无法通过捆绑包提供数据,但您可以在URI中使用查询参数或散列片段来提供必要的数据。

示例:

myscheme://<SOME_PATH>?param1=value1&param2&value2

然后,在您的GDK Glassware中,只需解析查询参数并处理它们的值。