【问题标题】:Android Tiles for wear unclear debug previewAndroid Tiles for wear 不清晰调试预览
【发布时间】:2021-04-30 12:42:59
【问题描述】:

我开始更新我们的穿戴模块,使其与 Google Play 的最新指南保持同步。 因为我这样做了,所以我决定将 Tiles API 添加到应用程序中。当准备好公开发布时,它将已经实施。 文档:https://developer.android.com/training/articles/wear-tiles#preview

很不清楚...有人明白吗?

wear-tiles-renderer 库提供了一种在应用内的 Activity 中预览 Tiles 的方法。 要预览您的 Tile,请创建一个使用渲染器库来渲染 Tile 的活动。在 src/debug 而不是 src/main 中添加此活动,因为您将仅将此活动用于调试目的。有关示例,请参见以下代码示例:

我尝试手动将示例代码添加到调试文件夹,因为我无法从 Android Studio 添加它。

在 main 中添加了 xml 文件,也添加到了 debug 文件夹中进行测试。

当我加载应用程序时,它会打开我的文件夹 src/main 的主文件,但会冻结。

如果在调试中,我是否需要添加任何代码来加载示例?

【问题讨论】:

    标签: android wear-os wear-os-tiles


    【解决方案1】:

    文档中的引用试图解释的是,您需要一个看起来像这样的模块:

    您的实际磁贴及其所需的一切都放在主文件夹中。然后在调试文件夹中你需要以下三样东西:

    清单 - 非常标准

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.tiles">
    
        <uses-feature android:name="android.hardware.type.watch" />
    
        <application
            android:label="@string/tiles_app_name">
    
            <activity
                android:name=".MainActivity"
                android:label="@string/tiles_app_name"
                android:noHistory="true">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
        </application>
    </manifest>
    

    Activity - 这里重要的是 TileManager

    class MainActivity : ComponentActivity() {
        private lateinit var tileManager: TileManager
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.tile_test)
            val rootLayout = findViewById<FrameLayout>(R.id.tile_container)
            tileManager = TileManager(
                context = this,
                component = ComponentName(this, SampleTile::class.java),
                parentView = rootLayout
            )
            tileManager.create()
        }
    
        override fun onDestroy() {
            super.onDestroy()
            tileManager.close()
        }
    }
    

    布局 - 也很标准

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/tile_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    

    如果您已完成所有这些设置,但它仍然冻结,则您的 Tile 类中可能存在错误。查看 Logcat 中是否有任何错误消息可以帮助您了解问题所在。

    【讨论】:

    • 很好,我来看看。我注册了 google i/o 研讨会以了解更多详情。?
    猜你喜欢
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多