2011-09-16 4 views
0

私のアプリケーションからネイティブメッセンジャークライアントでプリファレンスアクティビティを開始しようとしています。 AOSP Mms.apkには、そのアクティビティにインテントフィルタが設定されていません。それにもかかわらず、私はその画面にユーザーを立ち上げるための回避策を見つけようとしています。外部アクティビティを開始して、許可エラーを取得します。

Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.setComponent(ComponentName.unflattenFromString("com.android.mms/com.android.mms.ui.MessagingPreferenceActivity")); 
    intent.addCategory("android.intent.category.LAUNCHER"); 
    try { 
     startActivity(intent); 
    } catch (Exception e) { 
     AppUtils.alertError(this, error); 
    } 

私は

java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.android.mms/.ui.MessagingPreferenceActivity } from ProcessRecord{406e2738 674:com.handmark.genericapp/10034} (pid=674, uid=10034) requires null 

任意の考えを受けていますか?

答えて

1

あなたがしたいことはできません。そのアクティビティは(少なくともGoogle Code Searchに表示されるソースコードでは)エクスポートされないため、独自のカスタムファームウェアの一部としてアプリケーションを書き換える以外は、起動できません。

また、このアプリは特定の端末に存在することもあれば、存在しないこともあります。

+0

これも私が考えていたもので、回避策があることを期待していました。私はそれが存在しないかもしれないことを知っています、私は別の領域でこの活動の存在を確認します。 – tsmith

+0

@タイラー: "回避策があることを望んでいた" - 私はしないことを願っています。すべてのアクティビティが公開APIでなければならないという考えは恐ろしいものです。 – CommonsWare

関連する問題