【问题标题】:Android Wear companion activity gear does not show up in watch faceAndroid Wear 配套活动装备未显示在表盘中
【发布时间】:2015-07-25 07:36:30
【问题描述】:

我想为我的 Android Wear 表盘提供配套配置活动。我已经构建了具有所有配置并且可以直接与表盘通信的应用程序,但我只能从启动器作为应用程序启动它,但齿轮不会显示在 Android Wear 应用程序的表盘部分!我可以允许用户通过配套应用和 Google Android Wear 应用配置表盘吗?

这就是我在电话模块中声明我的活动的方式:

    <activity
        android:name=".Main"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.SEND"></action>
            <category android:name="android.intent.category.DEFAULT"></category>
            <data android:mimeType="image/*"></data>
        </intent-filter>
    </activity>

在手表部分,我添加了:

        <meta-data
            android:name=
            "com.google.android.wearable.watchface.companionConfigurationAction"
            android:value=
                "virtualgs.photowatch.Main" />

        <meta-data
            android:name=
                "com.google.android.wearable.watchface.wearableConfigurationAction"
            android:value=
                "virtualgs.photowatch.Main" />

结果是一样的 - Android Wear 应用上没有显示装备。

【问题讨论】:

    标签: configuration wear-os watch-face-api


    【解决方案1】:

    试试这样的:

    电话清单:

    <intent-filter>
            <action android:name="com.virtualgs.photowatch.MAIN_CONFIG" />
            <category android:name="com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
            <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    

    观看清单:

        <meta-data
                android:name="com.google.android.wearable.watchface.companionConfigurationAction"
                android:value="com.virtualgs.photowatch.MAIN_CONFIG" />
    

    我认为手机清单中的意图操作必须与手表清单中的元数据值相同才能起作用。

    【讨论】:

      【解决方案2】:

      我认为这是关于 XML 文件配置的正确答案:

      <activity
      android:name=".DigitalWatchFaceWearableConfigActivity"
      android:label="@string/digital_config_name">
      <intent-filter>
          <action android:name=
              "com.example.android.wearable.watchface.CONFIG_DIGITAL" />
          <category android:name=
          "com.google.android.wearable.watchface.category.WEARABLE_CONFIGURATION" />
          <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
      

      【讨论】:

      【解决方案3】:

      除了在电话模块中定义活动外,您还需要在磨损模块中引用它作为您的表盘服务声明的一部分,如下所示:

      <service
      android:name=".MyWatchFaceService" ... />
      <!-- companion configuration activity -->
      <meta-data
          android:name=
             "com.google.android.wearable.watchface.companionConfigurationAction"
          android:value=
             "com.my.watchface.CompanionConfigurationActivity" />
      <!-- wearable configuration activity -->
      <meta-data
          android:name=
             "com.google.android.wearable.watchface.wearableConfigurationAction"
          android:value=
             "com.my.watchface.WearableConfigurationActivity" />
      ...
      

      com.my.watchface.CompanionConfigurationActivitycom.my.watchface.WearableConfigurationActivity 分别替换为 wear 和 phone 模块中配置活动的完全限定名称。

      【讨论】:

      • 感谢您的帮助。由于我只想要手机上的配置,我以为只需要 com.google.android.wearable.watchface.companionConfigurationAction 部分?
      • 我更新了我的手表 XML 以使用您的示例,但将 com.my.watchface.CompanionConfigurationActivity 替换为我的应用名称 virtualgs.photowatch.Main (这是主要活动),结果是一样的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多