Android 我怎样才能把手机上的数据发送到索尼手表,因为若手表已经打开,那个么它就不能工作了

Android 我怎样才能把手机上的数据发送到索尼手表,因为若手表已经打开,那个么它就不能工作了,android,sony,sony-smartwatch,Android,Sony,Sony Smartwatch,我目前正在开发一个简单的应用程序,在其中我需要从手机发送数据到手表,这是完美的工作。。。我是通过使用共享首选项的方式来实现的。但问题是,当设备处于非睡眠状态时,它将显示以前的数据,所以我必须采取一些措施,并且必须调用onresume方法,然后它将完美地。。。。所以我想要的基本上是当我点击安卓应用程序的按钮时触发智能手表强制显示屏幕,同时我想要的是当我从手机上退出应用程序时退出应用程序。。。。下面是我在简历活动中使用的代码 @Override public void onResum

我目前正在开发一个简单的应用程序,在其中我需要从手机发送数据到手表,这是完美的工作。。。我是通过使用共享首选项的方式来实现的。但问题是,当设备处于非睡眠状态时,它将显示以前的数据,所以我必须采取一些措施,并且必须调用onresume方法,然后它将完美地。。。。所以我想要的基本上是当我点击安卓应用程序的按钮时触发智能手表强制显示屏幕,同时我想要的是当我从手机上退出应用程序时退出应用程序。。。。下面是我在简历活动中使用的代码

    @Override
    public void onResume()
    {
            Log.d("watch on ", "onResume");
            setScreenState(Control.Intents.SCREEN_STATE_ON);
            SharedPreferences pref = mContext.getSharedPreferences("text", Context.MODE_PRIVATE);
            String text = pref.getString("textToDisplay", "test");
            Bundle bundle1 = new Bundle();
            bundle1.putInt(Control.Intents.EXTRA_LAYOUT_REFERENCE, R.id.txtvSWText);
            bundle1.putString(Control.Intents.EXTRA_TEXT, text);
            Bundle[] bundleData = new Bundle[1];
            bundleData[0] = bundle1;
            showLayout(R.layout.sample_control_2, bundleData);
    }
如果你还有疑问,让我知道…我会尽力解释更多。。。在此方面的任何帮助都将不胜感激


谢谢

使用广播接收器怎么样

//Send with this
Intent intent = new Intent("com.yourApp.yourAppAction");
intent.setPackage("com.yourApp.yourMainApp");
intent.putExtra("event", "updateDisplay");
ctxt.sendBroadcast(intent);

您是否尝试过将上述内容放在onCreate方法中,以便在创建活动时显示该方法。onCreate?你这么说是为了安卓方面?我想这是手表方面,我不认为有任何方法为手表上创建是吗?或者我遗漏了一些部分?我认为应该可以,但问题是我们不是必须使用Intent Intent=newintentcontrol.Intents.CONTROL\u START\u REQUEST\u Intent;intent.putExtraControl.Intents.EXTRA_AEA_PACKAGE_NAME,com.example.PACKAGE;String hostAppPackageName=intent.getStringExtraRegistration.Intents.EXTRA\u AHA\u包\u名称;intent.setPackagehostAppPackageName;sendBroadcastintent,Registration.HOSTAPP_权限;这就是我们应该如何醒来的,对吗?但你们用过广播接收机,这会唤醒控制分机吗?好的,我想我误解了你们的问题。是的,正如你提到的,你必须首先唤醒扩展。我已经唤醒了扩展,但我如何知道我的应用程序扩展处于唤醒模式,现在我应该使用receiver?以及我在控制扩展的构造函数中注册receiver的位置?因为在构造函数中,它每次都会调用,每次创建新的接收器时都会创建?你明白我的意思吗?请提供更好的方式对不起,让我试着更好地理解你的问题。所以你有一个在手机上运行的应用程序。您希望单击手机应用程序上的一个按钮,并正确更新手表显示。事实上,如果所有东西都在同一个包中,这一切都可以做得容易得多。我认为除了广播接收器之外,还有一些方法可以实现这一点。例如,设置要通信的静态变量和函数。但你还是想按下一个按钮,启动手表应用程序,如果没有启动,执行一个动作,对吗?是的,我确实想做同样的事情,当我从手机上退出应用程序时,我需要关闭应用程序。
//And then receive it and update the display in the control extension

registerBroadcastReceiver(this);

private void registerBroadcastReceiver(Context context) {
    IntentFilter iF = new IntentFilter();
    iF.addAction("com.yourApp.yourAppAction");
    context.registerReceiver(mReceiver, iF);            
}

private BroadcastReceiver mReceiver = new BroadcastReceiver() { 
    @Override
    public void onReceive(Context context, Intent intent)
    {
        String event = intent.getStringExtra("event");
        if (event.equals("updateDisplay")) {
            showBitmap(yourUpdatedBitmap);
        }
    }
};