当前位置: 首页 > 知识库问答 >
问题:

在模拟器中进行Android Wear watchface配对配置测试

乐欣可
2023-03-14

我正在开发一款Android Wear手表,在测试/使用我的掌上电脑配置活动时遇到了一些问题。虽然我对Android开发一般来说并不陌生,但这是我的第一个watchface应用程序,因此如果其中一些问题很明显,请参阅适当的文档。

我有我的可穿戴模块和手持模块。目前手持模块只有一个活动作为伴侣配置。

我有两个问题:

  1. 当通过通过USB连接到计算机的手持设备连接的磨损模拟器进行测试/调试时,我如何启动伴侣配置活动?当在磨损设备上选择表盘时,不会出现“齿轮”图标(然而,我假设这是因为没有可穿戴配置活动,只是一个伴侣配置活动,但我当然可能错了)。

在Android穿戴应用程序内部的手持设备上,表盘上的三个点有一个“安装设置应用程序”的菜单项,但此选项只是启动游戏商店,自然找不到任何要安装的设置应用程序。如何在手持设备上启动设置/配套配置活动。

我假设我选择了手持模块活动,然后运行。在device chooser中,我选择了连接的手持设备,一切似乎都完成了,但设备或物理穿戴设备上的Android Wear应用程序中没有显示watchface。

****更新****

当我将应用程序加载到通过蓝牙调试连接的实际可穿戴设备上时,我似乎能够很好地运行配套配置

adb forward tcp:4444 localabstract:/adb-hub
adb connect localhost:4444

仍然没有通过模拟器(如果可能的话)

以下是清单文件供参考。为了保护这个项目的隐私,我清理了一些数据,但不应该遗漏任何重要信息。

可穿戴舱单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.FOOBAR.android.FOOBAR" >

    <uses-feature android:name="android.hardware.type.watch" />

    <!-- Required to act as a custom watch face. -->
    <uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.DeviceDefault" >
        <service
            android:name=".WatchfaceService"
            android:label="@string/my_analog_name"
            android:permission="android.permission.BIND_WALLPAPER" >
            <meta-data
                android:name="android.service.wallpaper"
                android:resource="@xml/watch_face" />
            <meta-data
                android:name="com.google.android.wearable.watchface.preview"
                android:resource="@drawable/preview_accuweather" />
            <meta-data
                android:name="com.google.android.wearable.watchface.preview_circular"
                android:resource="@drawable/preview_accuweather" />
            <meta-data
                android:name="com.google.android.wearable.watchface.companionConfigurationAction"
                android:value="com.FOOBAR.android.FOOBAR.watchface.CONFIG_HANDHELD" />

            <intent-filter>
                <action android:name="android.service.wallpaper.WallpaperService" />
                <category android:name="com.google.android.wearable.watchface.category.WATCH_FACE" />
            </intent-filter>
        </service>

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
    </application>

</manifest>

手持清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.FOOBAR.android.FOOBAR" >

    <uses-sdk android:minSdkVersion="18"
        android:targetSdkVersion="21" />

    <!-- Permissions required by the wearable app -->
    <uses-permission android:name="com.google.android.permission.PROVIDE_BACKGROUND" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <!-- All intent-filters for config actions must include the categories
        com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION and
        android.intent.category.DEFAULT. -->
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".HandheldConfig"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="com.FOOBAR.android.FOOBAR.watchface.CONFIG_HANDHELD" />
                <category android:name="com.google.android.wearable.watchface.category.COMPANION_CONFIGURATION" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <!--
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
            -->
    </application>

</manifest>

共有1个答案

蔺敏达
2023-03-14

我现在正在开发一些Android Wear应用程序,对于你的两个问题,我希望我的回答能帮助你:

>

  • 我认为您应该检查通过USB电缆连接的手机是否与您的磨损模拟器配对,在我看来,这些设备不会相互配对。

    我使用Eclipse开发磨损应用程序,所以在我的例子中,只需直接在Eclipse上运行磨损应用程序,它就会将应用程序安装到磨损模拟器(Android虚拟设备)。

    我想让你知道的一件事是,手表上只有固件5.0及以上版本的手表才可用,因此请确保在创建wear emulator时,你应该选择设备的目标至少为5.0.1,否则你将无法在那里看到你的手表

  •  类似资料:
    • 我正在为一个引用硬编码文件名“classpath:config.properties”的应用程序编写测试。无法更改此名称。有没有办法用不同的配置测试这个应用程序?i、 e.不同的测试在运行时提供不同的配置? 这是一个奇怪的要求,但我非常感谢任何意见

    • 我们的使用和配置基于https://github.com/hdineth/springboot-freemaker-email-send: 但是,任何地方都没有关于如何使用JUnit5为此运行单元测试的信息或文档。 当我添加相关的依赖项时 在我们的实际代码中(这是一个大的多模块项目),我有另一个错误,原因是: 但这只是为了上下文,首先我想让它在简单的示例项目中工作,然后担心让它在复杂的项目中工作。

    • Spock对存根和模拟做了很强的区分。当要更改的内容从被测试类使用的类返回时,请使用存根,这样您就可以测试if语句的另一个分支。使用mock,当您不关心测试中的类返回什么时,只需调用另一个类的另一个方法,并且您希望确保调用了该方法。很整洁。然而,假设您有一个具有流利API的构建器,它使人们。您希望测试调用此生成器的方法。 所以最初,我想只是模拟构建器,然后myMethod()的单元测试应该检查具有

    • Alpha-父级,子级为beta 贝塔-阿尔法的孩子,查理 Charlie-有一个列表,通常在制作中会被洗牌 AlphaTest[需要此测试的帮助]-想尝试不同的洗牌变体,看看alpha/beta会如何反应。 目标是用不同的组合测试Alpha/Beta。不知道最好的方法是什么?这正是复制的代码。也可以更改设置以方便测试。尝试了不同的变体,但没有任何效果。非常感谢您的帮助。 我不确定,我尝试了一堆方

    • 我正在通过Java代码以编程方式运行JMeter,我希望生成一组具有不同主体的POST请求。下面是我用来生成一个请求的采样器: 如何用CSV文件中的值替换每个请求主体中的? 我知道GUI版本中有插件,但我还没有找到从Java代码中使用它的方法。

    • 我想用Mock for Spring Boot制作一个测试用例,但我无法连接到授权服务器: 我的控制器: 这是我的测试,但取一个错误NullPointer,可能是因为在方法中有一个参数(OAuth2Authentication auth),我不知道如何将其放入测试中: