Opening GDK Glassware through Mirror API Glassware

2020-02-06 04:30发布

问题:

I have problem integrating GDK Glassware and Mirror API Glassware as described here. I need to open GDK glassware application using Mirroe api Glassware app MenuItem. Can I send data bundle with intent. Does anybody have an idea about that.

Thank you.

回答1:

I have finally figured out a way to do that

  1. First add your custom scheme to android activity tag in AndroidManifest.xml

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

Hope this will help others



回答2:

It is not possible to provide data through bundle, but you can use query parameters or hash fragment in your URI to provide the necessary data.

Example:

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

Then, in your GDK Glassware, simply parse the query parameters and process their values.