2

私は自分のアプリケーションを持っています。うまくいっています。ここで、ランチャー アイコンを非表示にしてシステムにインストールする小さなアドオンを開発しました。

<activity android:name="GitHubSearch"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>

Android: Starting An Activity For A Different Third Party Appを使用してこのアクティビティを起動しようとして いますが、私のアプリは Exception - Activity not found で失敗します。

final Intent i = new Intent("android.intent.action.MAIN");
            i.setComponent(new ComponentName("com.example.me.module","com.example.me.module.MyActivity"));
            startActivity(i);

インテントに渡すパッケージ名とアクティビティ名を 10 回チェックしました。すべて順調。

どこが間違っているのですか?

4

1 に答える 1

2

必要だったのは

android:exported = "true"

activityマニフェスト xmlのノードへ。

デフォルトでは、Android はアクティビティをエクスポートしません。アクティビティをエクスポートすると、何でもアクティビティを開始できるようになります。

エクスポートには 2 つの方法があります。上記の方法と、カスタムintent-filter.

新しいモジュールがアプリとのみ通信するようにしたい場合は、このSO の回答を見ることができますが、推奨されていないことに注意してください。

于 2013-01-13T00:14:08.820 に答える