【问题标题】:Opening GDK Glassware through Mirror API Glassware MenuItem通过 Mirror API Glassware MenuItem 打开 GDK Glassware
【发布时间】:2014-01-07 06:21:28
【问题描述】:

我在集成 GDK Glassware 和 Mirror API Glassware 时遇到问题,如 here 所述。我需要使用 Mirroe api Glassware app MenuItem 打开 GDK glassware 应用程序。我可以发送有意图的数据包吗?有没有人对此有想法。

谢谢。

【问题讨论】:

  • 我可以使用这种方法发送数据吗?。这不能回答我的问题。不过非常感谢。
  • 好问题,是否可以将数据从时间线卡传递到本机应用程序,就像我们在普通 android 中使用 bundle 做的那样?

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


【解决方案1】:

我终于找到了办法

  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. 然后在 Glassware 时间轴 MenuItem 添加如下

    
    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. 然后在您的 Activity OnCreate 方法中,您可以获得如下数据

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

希望这对其他人有所帮助

【讨论】:

    【解决方案2】:

    无法通过bundle提供数据,但您可以使用URI中的查询参数或哈希片段来提供必要的数据。

    例子:

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

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

    【讨论】:

    • 谢谢Alain。非常感谢您的帮助,我会试试这个方法。
    猜你喜欢
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多