2017-03-29 12 views
1

私はライブラリを開発中です。ライブラリを使用しているアプリケーションが、私のカスタムアクションを使って暗黙的なインテントで主なアクティビティを開始できるようにしたいと考えています。しかし、カスタムインテントは機能していません。 「アクション= '私のカスタムアクション'でインテントを処理するアクティビティは見つかりませんでした。以下は私のコードです:Android - ライブラリプロジェクトのアクティビティを開始できません

Intent intent = new Intent(); 
intent.setAction("my.custom.action"); 
intent.addCategory("android.intent.category.DEFAULT"); 
intent.putExtra("foo","bar"); 
startActivity(intent); 

私は私を公開したくないので、私はこの方法を使用する必要はありませんが(私も意図を取得するには、パッケージ名を使用して試してみましたが、それはどちらか動作しませんでしたパッケージ名とコンポーネント)

Intent intent = getPackageManager().getLaunchIntentForPackage("com.happay.android.acslibrary"); 

は最後に、私は、明示的な意図を使用してみました:

Intent intent = new Intent(this,LibMainActivity.class); 
startActivity(intent); 

これは例外をスローしませんでしたが、私の図書館活動を開けませんでした。それは私のメインプロジェクトから同じ活動を開いたばかりです。ここ は、私は私の活動を登録マイライブラリプロジェクトのマニフェストである:私は間違って何を

<activity android:name=".LibMainActivity"> 
     <intent-filter> 
      <action android:name="my.custom.action" /> 

      <category android:name="android.intent.category.DEFAULT" /> 

     </intent-filter> 
    </activity> 

やっていますか?

答えて

1

Intentからカテゴリを削除すると、startActivity()に渡されます。カテゴリLAUNCHERIntentに追加しましたが、<intent-filter>にはカテゴリDEFAULTのみが含まれています。マッチはありません。 documentation for matching Intentsによると:フィルターに与えられたテント試合 カテゴリ内のカテゴリのすべての場合

カテゴリが一致します。 がインテントにないフィルタの余分なカテゴリでは、一致が失敗しません。アクションとは異なり ということに注意してください。カテゴリのないIntentFilterはカテゴリを持たないIntentの にのみ一致します。

+0

質問を投稿している間は間違いでした。コードで私は同じカテゴリを使用しています。私は質問を編集しました。 – Asu

+0

登録時にカテゴリが使用されていない場合は、意図にカテゴリを使用しないでください。しかし、カテゴリのアプリケーションのクラッシュなし。同じカテゴリで同じ呼び出しアクティビティが再度開始されます。 – Asu

関連する問題