Невозможно запустить действие с неявным намерением, указав только действие - PullRequest
2 голосов
/ 05 марта 2010

Я пытаюсь запустить действие, указав только его действие (пользовательское), определенное в его фильтре намерений, из действия в другом приложении. Запускаемое действие является основным действием его приложения, поэтому android.intent.action.MAIN & android.intent.category.LAUNCHER установлено в качестве действия и категории в его фильтре намерений. Теперь, согласно документу Android на Intent и Intent Filter, мне не нужно указывать категорию DEFAULT в этом случае. Но, делая то же самое, я не могу запустить действие.

LogCat говорит, не удалось найти активность ...

Я неправильно истолковал текст или чего-то еще не хватает ...?

Код, используемый для вызова действия

Intent i=new Intent();
i.setAction("android.AddressBookV4.firstActivity");
startActivity(i);

Определение действия, вызываемого в файле манифеста

<activity android:name=".AddressBook"
          android:label="@string/app_name">
     <intent-filter>
         <action android:name="android.AddressBookV4.firstActivity" />
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
</activity>

1 Ответ

1 голос
/ 05 марта 2010

Вам необходимо добавить категорию LAUNCHER к вашему Intent, поскольку <intent-filter> говорит, что она соответствует следующим Intents (в псевдокоде):

((action IS "android.AddressBookV4.firstActivity")
    OR (action IS "android.intent.action.MAIN"))
  AND (category IS "android.intent.category.LAUNCHER")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...