【问题标题】:Send data from Settings Activity to Watch Face将数据从 Settings Activity 发送到 Watch Face
【发布时间】:2015-12-22 17:02:53
【问题描述】:

我刚刚开发了一个简单的 Android Wear 表盘,开始学习有关 Android Wear 的知识。

应用程序:https://play.google.com/store/apps/details?id=com.gerardcuadras.minimalflat(如此简单)

当用户点击屏幕时,表盘会改变其背景颜色。现在,我想添加一个显示颜色列表的 Activity,并让用户选择一个而不是点击屏幕。

我将此行添加到我的清单中,将配置切换添加到表盘。

<meta-data
android:name="com.google.android.wearable.watchface.wearableConfigurationAction"
android:value="com.gerardcuadras.minimalflat.wearable.watchface.CONFIG_DIGITAL" />

之后我创建了一个处理按钮点击的 Activity:

public void broadcastIntent(View view){
    Log.d(TAG, "broadcastIntent: Pressed button");
    Intent intent = new Intent();
    intent.setAction("com.gerardcuadras.minimalflat.CUSTOM_INTENT");
    intent.putExtra("extra", "extra data");
    sendBroadcast(intent);
}

然后在 MyWatchFace.java(扩展 CanvasWatchFaceService)上,我有它应该处理广播:

public class MyReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d(TAG, "onReceive: WORKS!");
        }
    }

当我运行模拟器并单击按钮时,我在控制台上看到的唯一内容是:

“broadcastIntent:按下按钮”

所以接收方(可能是发送方)没有工作,因为它没有记录 onReceive() 日志

我是 Android 的新手。我确定我做得不好,或者我错过了一些东西。

我将不胜感激任何帮助或任何文档以继续逐步学习。

谢谢

【问题讨论】:

  • 您是否尝试将意图从手持活动发送到穿戴设备?
  • 您是否正在为该广播注册监听器?

标签: java android android-intent broadcastreceiver wear-os


【解决方案1】:

这可能更适合使用 SharedPreferences (http://developer.android.com/reference/android/content/SharedPreferences.html)

使用 SharedPreferences,即使用户更改为不同的表盘并返回,选择也会保留。

您还可以使用已注册的 Preference Change Listener 来检测在您的配置活动中所做的更改。 http://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html

【讨论】:

    【解决方案2】:

    您可以将 WearPreferenceActivity 库用于您的 PreferencesActivity,这会更改 SharedPreferences android:key="pref_key"。您的表盘会通过mSharedPref.getBoolean("pref_key", false); 读取首选项。

    检测首选项更改的一种简单方法是侦听 onVisibilityChanged 事件,该事件将在 PreferencesActivity 关闭后调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-27
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多