2013-08-06 2 views
0

Начиная разработку приложения в эти дни, я застрял, пытаясь открыть «окно», когда экран коснулся виджета.Sony SmartWatch - окно виджета

В примерах кода (sdk) мы видим это в Виджете событий, когда вы нажимаете на экране, открывается «окно», и вы можете видеть события там.

Я следую код, чтобы увидеть, как я могу это сделать:

в NotificationWidgetExtension: SmartExtensionUtils: onTouch событие

Intent intent = new Intent(Widget.Intents.WIDGET_ENTER_NEXT_LEVEL_INTENT); 
sendToHostApp(intent); 

В WidgetExtension

protected void sendToHostApp(final Intent intent) { 
    intent.putExtra(Widget.Intents.EXTRA_AEA_PACKAGE_NAME, mContext.getPackageName()); 
    intent.setPackage(mHostAppPackageName); 
    mContext.sendBroadcast(intent, Registration.HOSTAPP_PERMISSION); 
} 

Попытка повторить, но я не успешным. Есть ли место, где я могу прочитать об этом, или кто-то может помочь мне в этом?

+0

Вы работаете в эмуляции или на устройстве? Можете ли вы правильно скомпилировать свой код? Можете ли вы запустить _anything_? – Floris

+0

Я использую часы. Это все работает, дело в том, что я хочу узнать больше об этом открывшемся окне. Могу ли я открыть любой макет с этим? – Otuyh

+0

О, теперь я вижу, что открытое окно действительно является расширением. – Otuyh

ответ

2

Я думаю, вы смотрите на три разных API - API виджета, API уведомлений и API управления.

Код onTouch, который вы указываете, является частью классов утилиты SDK, и он поможет вам, если вы сделали расширение, в котором реализованы API уведомлений и API-интерфейс Widget. Когда в представлении Widget на часах и вы переопределили класс NotificationWidgetExtension, событие onTouch будет передано указанному методу. Он будет в основном показывать первое доступное (и не прочитанное) уведомление.

Вы упомянули «окно» и т. Д., И я предполагаю, что вы хотите создать приложение на SmartWatch. Это осуществляется через API управления. Взгляните на SampleControlExtension, содержащиеся в SDK. Проверьте this ответ, чтобы получить информацию о том, как запустить расширение Control из собственного расширения. Например. если вы создаете расширение Widget + Control, вы можете запустить расширение Control в методе onTouch вашего виджета.

+0

Эй, Джеркер, спасибо за ответ, но у меня все еще есть один вопрос. Я использую это в onTouch виджета: Intent intent = новый Intent (Control.Intents.CONTROL_START_REQUEST_INTENT); sendToHostApp (намерение); Хорошо, я начинаю контроль. Как я могу узнать, что я иду из виджета, а не щелкая на значке расширения? – Otuyh

+0

Привет, Hor, в настоящее время нет способа отличить расширение, запущенное с помощью виджета, и расширение, начатое пользователем. Я бы предложил использовать, например, настройки вашего приложения, чтобы установить флаг в методе Widget onTouch. И когда расширение Control было запущено, отметьте флаг, чтобы различать две ситуации. Не идеально, но выполнимо. – Jerker

Смежные вопросы