2013-08-06 35 views
0

現在開始開發應用程序,我試圖在小部件中觸摸屏幕時打開「窗口」。索尼智能手錶 - 小工具窗口

在代碼示例(sdk)中,我們可以在Event Widget中看到這一點,當您單擊屏幕時,會打開一個「窗口」,您可以在其中看到事件。

我跟隨的代碼,看看我能做到這一點:

在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-- Widget API,Notification API和Control API。

您所引用的onTouch代碼是SDK實用程序類的一部分,如果您製作了既實現了Notification API又實現了Widget API的擴展程序,那麼該代碼就可以幫助您。在Watch上的Widget視圖中,當您重寫NotificationWidgetExtension類時,onTouch事件將傳遞到所提及的方法。它將基本顯示第一個可用(而不是讀取)通知。

你提到「窗口」等,我猜你想在SmartWatch上創建一個應用程序。這是通過Control API完成的。看看SDK中包含的SampleControlExtension。檢查this答案,以獲取有關如何從您自己的分機啓動控制擴展的信息。例如。如果您創建了Widget + Control擴展,則可以在Widget的onTouch方法中啓動控件擴展。

+0

嘿Jerker,謝謝你的答案,但我仍然有一個問題。我在onTouch的widget中使用這個: Intent intent = new Intent(Control.Intents.CONTROL_START_REQUEST_INTENT); sendToHostApp(intent); 好吧,我開始控制。我怎麼知道我來自小部件,而不是點擊擴展圖標? – Otuyh

+0

嗨!Hor,目前沒有辦法真正區分widget開始的擴展和用戶啓動的擴展。我建議使用例如您的應用偏好設置在Widget onTouch方法中設置標誌。當控制擴展已經啓動時,檢查標誌以區分這兩種情況。不完美,但可行。 – Jerker