Aaron B.
- Forum-Beiträge: 206
06.04.2014, 10:33:12 via App
06.04.2014 10:33:12 via App
Hallo,
ich möchte einen Launcher entwickeln, welcher auch AppWidgets binden kann, habe aber jetzt das Problem, das ich im Internet kein einziges Tutorial für Geräte mit Api >= 4.1 finden kann. Ich habe bereits einiges ausprobiert, darunter auch die Vorgehensweise für Geräte mit Api <4.1. Wenn ich bei diesen jedoch den Picker-Intent starte, kommt über onActivityResult ein RESULT_CANCELED result, bevor man ein Widget gewählt hat.
Mein Code:
Hat irgendwer Erfahrungen mit diesem Thema oder kennt ein gutes Tutorial?
Danke im Voraus
[EDIT]
Ich habe mir außerdem den Eintrag in Android Developers zu diesem Thema angesehen. Dort ist zwar ein Beispiel für api >= 4.1, dieses beinhaltet jedoch unerklärte Variablen (z. B. "info".componentName) und ist nur teilweise erklärt.
ich möchte einen Launcher entwickeln, welcher auch AppWidgets binden kann, habe aber jetzt das Problem, das ich im Internet kein einziges Tutorial für Geräte mit Api >= 4.1 finden kann. Ich habe bereits einiges ausprobiert, darunter auch die Vorgehensweise für Geräte mit Api <4.1. Wenn ich bei diesen jedoch den Picker-Intent starte, kommt über onActivityResult ein RESULT_CANCELED result, bevor man ein Widget gewählt hat.
Mein Code:
1AppWidgetHost awh;
2AppWidgetManager awm;
3
4onCreate:
5awm = AppWidgetManager.getInstance(c);
6 awh = new AppWidgetHost(c, R.id.tab_a_appwidgethost);
7 awh.startListening();
8
9onButtonClick:
10int awi = awh.allocateAppWidgetId();
11 Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awi);
12 putWidgetIntentEmptyData(intent);
13 startActivityForResult(intent, REQUEST_PICK);
14
15public void putWidgetIntentEmptyData(Intent wi)
16 {
17 ArrayList<AppWidgetProviderInfo> customInfo = new ArrayList<AppWidgetProviderInfo>(); wi.putParcelableArrayListExtra(AppWidgetManager.EXTRA_CUSTOM_INFO, customInfo);
18 ArrayList<Bundle> customExtras = new ArrayList<Bundle>(); wi.putParcelableArrayListExtra(AppWidgetManager.EXTRA_CUSTOM_EXTRAS, customExtras);
19 }
2AppWidgetManager awm;
3
4onCreate:
5awm = AppWidgetManager.getInstance(c);
6 awh = new AppWidgetHost(c, R.id.tab_a_appwidgethost);
7 awh.startListening();
8
9onButtonClick:
10int awi = awh.allocateAppWidgetId();
11 Intent intent = new Intent(AppWidgetManager.ACTION_APPWIDGET_PICK); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, awi);
12 putWidgetIntentEmptyData(intent);
13 startActivityForResult(intent, REQUEST_PICK);
14
15public void putWidgetIntentEmptyData(Intent wi)
16 {
17 ArrayList<AppWidgetProviderInfo> customInfo = new ArrayList<AppWidgetProviderInfo>(); wi.putParcelableArrayListExtra(AppWidgetManager.EXTRA_CUSTOM_INFO, customInfo);
18 ArrayList<Bundle> customExtras = new ArrayList<Bundle>(); wi.putParcelableArrayListExtra(AppWidgetManager.EXTRA_CUSTOM_EXTRAS, customExtras);
19 }
Hat irgendwer Erfahrungen mit diesem Thema oder kennt ein gutes Tutorial?
Danke im Voraus
[EDIT]
Ich habe mir außerdem den Eintrag in Android Developers zu diesem Thema angesehen. Dort ist zwar ein Beispiel für api >= 4.1, dieses beinhaltet jedoch unerklärte Variablen (z. B. "info".componentName) und ist nur teilweise erklärt.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.