Die Aufgabe war einfach: Per Open Intents-Action org.openintents.action.PICK_COLOR
(und startActivityForResult()
) einen Farbwähler zu starten, die Farbe auszuwerten, ???, Profit.
Leider steckte der Teufel im Detail, ich hatte keinen Farbwähler installiert und wie zu erwarten, schoss sich die Activity mit einer ActivityNotFoundException
ins Nirvana. Steht ja auch in der Doku. Wusste ich dann auch.
Ein Lösungsansatz ist nun, die Exception zu fangen und glücklich zu sein. Gibt aber keine Bonuspunkte. Daher löst das Problem mittels PackageManagers und queryIntentActivities() wie folgt:
List<ResolveInfo> list = getPackageManager().queryIntentActivities( theIntentToStart, PackageManager.MATCH_DEFAULT_ONLY ); if (list.size() == 0) { // Voodoo. return; } startActivity(theIntentToStart);
Ich habe die neugewonnene Information dann dafür genutzt, den auslösenden Menüpunkt gar nicht erst anzuzeigen. (Den OI-Farbwähler habe ich später trotzdem nicht überzeugen können, mir Ergebnisse zu liefern.)