Android Wear Hello World
时间:2020-02-23 14:29:24 来源:igfitidea点击:
今天,我们将讨论使用Android Studio和Wear OS模拟器的基本的hello world应用程序与Android Wear。
Android Wear应用类型
Android Wear Apps可以有两种类型:
- 独立应用
- 伴侣应用程序–具有等效的电话应用程序,可以与穿戴应用程序进行通信。
首先,在我们的Android Studio项目中创建一个简单的独立Wear OS应用。
项目结构
我们的项目结构如下所示:
Android Wear Hello World项目结构
在build.gradle中的磨损依存关系是:
dependencies { implementation 'com.google.android.support:wearable:2.4.0' implementation 'com.google.android.gms:play-services-wearable:16.0.1' implementation 'com.android.support:percent:28.0.0' implementation 'com.android.support:support-v4:28.0.0' implementation 'com.android.support:recyclerview-v7:28.0.0' implementation 'com.android.support:wear:28.0.0' compileOnly 'com.google.android.wearable:wearable:2.4.0' }
AndroidManifest.xml
Wear OS App的列表与普通的Android Phone Apps略有不同。
其中我们需要指定功能并安装OS库以及一些元数据。
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="com.theitroad.androidwearoshelloworld"> <uses-permission android:name="android.permission.WAKE_LOCK" <uses-feature android:name="android.hardware.type.watch" <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@android:style/Theme.DeviceDefault"> <uses-library android:name="com.google.android.wearable" android:required="true" <!- Set to true if your app is Standalone, that is, it does not require the handheld app to run. --> <meta-data android:name="com.google.android.wearable.standalone" android:value="true" <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" <category android:name="android.intent.category.LAUNCHER" </intent-filter> </activity> </application> </manifest>
布局
磨损为os的智能手表最常用的布局是BoxInsetLayout。
<android.support.wearable.view.BoxInsetLayout> ... <LinearLayout ... app:layout_box="all"> </android.support.wearable.view.BoxInsetLayout>
另一个常用的布局是" SwipeDismissFrameLayout"。
这样可以从左向右滑动。
磨损os的RecyclerView等效类是WearableRecyclerView
。
android.support.wearable.view.CircledImageView提供了一种圆形布局来显示图像。
下面给出了" activity_main.xml"布局的代码:
<?xml version="1.0" encoding="utf-8"?> <android.support.wear.widget.BoxInsetLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:app="https://schemas.android.com/apk/res-auto" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/dark_grey" android:padding="@dimen/box_inset_layout_padding" tools:context=".MainActivity" tools:deviceIds="wear"> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/inner_frame_layout_padding" app:boxedEdges="none"> <android.support.wear.widget.SwipeDismissFrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/swipe_dismiss_root" > <TextView android:id="@+id/test_content" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="bottom" android:text="Swipe the screen to dismiss me." </android.support.wear.widget.SwipeDismissFrameLayout> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="@string/hello_world" </FrameLayout> </android.support.wear.widget.BoxInsetLayout>
其中我们添加了滑动以关闭带有文本视图的布局。
代码
MainActivity.java类的代码如下:
package com.theitroad.androidwearoshelloworld; import android.os.Bundle; import android.support.wearable.activity.WearableActivity; import android.widget.TextView; public class MainActivity extends WearableActivity { private TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = findViewById(R.id.text); //Enables Always-on setAmbientEnabled(); } }
常亮功能可让应用控制在环境模式下手表上显示的内容。