アンドロイドのアプリ開発で、外部アプリのActivityを起動しようとしたらSecurityExceptionエラーが出て難儀しやした。

で、何度もやりそうなので対処をメモっておきます。

こんなエラーメッセージ

SecurityException: Permission Denial:.....requires null......

やろうとしたこと

あるアプリから、外部アプリのメインじゃなくサブのActivityを開こうという意図。

例えば、com.example.myapp.SubActivityを開きたい...として。

開く側のコード

// インテントのインスタンス生成
Intent intent_sub = new Intent();
// パッケージ名, クラス名をセット
intent_sub.setClassName("com.example.myapp", "com.example.myapp.SubActivity");
// アプリを起動
startActivity(intent_sub);



開かれる側の設定

AndroidManifest.xmlのactivityに以下のように記述しておきます。

メインのActivity

<activity
            android:name="com.example.myapp.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>


サブのActivity

<activity
            android:name="com.example.myapp.SubActivity"
            android:label="@string/app_name" >
            <!-- 以下のfilterは他アプリからのstartActivityに対応するためのもの   -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </intent-filter>
</activity>




これで、OKです。