2012-03-08 84 views
0

我有一個功能齊全的Android小部件,它由服務提供者類,接收者類和其他一些資源組成。從另一個應用程序安裝Android小部件

我有一個單獨的應用程序,我已經成功地導入了小部件的類和所需資源。在應用程序內部有一個按鈕菜單(編碼爲硬菜單按鈕),我想使用它中的按鈕來安裝該小部件。我不在乎widget是否顯示在主頁上(我知道你不能在應用程序內部做到這一點)我只想要小部件安裝併成爲主屏幕上「widget」菜單上的一個選項。
我已經嘗試從應用程序內啓動服務,我試着發送更新到小部件,所以它會調用.OnEnabled,我嘗試實例化Java類...我明顯缺少一些東西,無法找到它從android文檔出來。

我知道這是一個非常愚蠢的問題...

我怎樣才能獲得的ServiceProvider運行並安裝插件? (使用WidgetServiceProvider.java和WidgetReceiver.java爲例)

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) 
    {   
     ... 
    case R.id.installWidget: 
     ????????  
     break; 
    } 
+0

你或許應該發表您的AndroidManifest.xml和有關'android.appwidget.provider' XML元-數據。 – Jens 2012-03-08 21:58:37

回答

1

有內部應用程序的按鈕菜單(編碼爲硬菜單按鈕),我想使用一個按鈕來安裝小部件。我不在乎,如果小部件顯示在主頁上(我知道你不能從一個應用程序內部的做)

這些句子沒有真正意義的我。你說你想用一個應用程序在主頁上放置一個小部件..但後來說你知道你不能從一個應用程序內部做到這一點..

如果你問的是如何讓小部件自動安裝在通過清單xml文件實現的小部件菜單中。

如需查看完整教程,您可以查看here,但針對您的問題,您只需將這些標記的變體添加到清單xml文件中的應用程序標記中即可。

<receiver android:name="[Package name]" android:label="[Your Label]"> 
    <intent-filter> 
    <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
    </intent-filter> 
    <meta-data android:name="android.appwidget.provider" android:resource="@xml/widget" /> 
</receiver> 

鏈接標籤:

+0

你不仔細閱讀,因爲我不反駁自己。 我的小部件不是「從清單自動安裝」。 我清楚地指出,我並不是試圖在主頁上放置這個小部件,而只是安裝它。這並沒有幫助,也沒有包含觸發這個「automagic安裝」的任何清單元素 – 2012-03-08 21:14:54

+0

我根據您的評論更新了我的答案並提供了更多信息,但是如果您已在清單文件中包含此信息,那麼您需要發佈該文件我們可以調試它。 – BoredAndroidDeveloper 2012-03-09 13:47:32

+0

您編輯的答案對未來人們的參考更有幫助。 我的實際問題是我的接收器和服務標籤內部有一個活動標籤。在清單中確保清單中的活動,接收者和服務類都是離散的(帶有它們自己的意圖過濾器),並且除了標記以外,它們都不嵌套在任何內容中。 我會將此標記爲答案,因爲它指示我如何通過清單安裝小部件,並且因爲您花時間編輯了更多細節。 – 2012-03-10 21:16:31

相關問題