4

を送る私は、データ型application/pdfACTION_SEND意思中に次の例外を取得しています:アンドロイドSecurityExceptionが意図

java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.SEND typ=application/pdf flg=0x3080000 cmp=com.adobe.reader/.ARSendForSignature (has extras) } 

これは、PDFを受信するために必要なアプリケーションを選択するダイアログが表示されます。ユーザがARSendForSignatureアクティビティを特に開いているように見えますが、ユーザがAdobe Readerをリストから選択すると、SecurityExceptionがスローされていると思います。

アイデア?

答えて

13

あなたの視点に応じて、Adobe ReaderアプリにバグやAndroidのバグがあります。

には、Adobe ReaderのARSendForSignature活動がACTION_SEND<intent-filter>サポートしていますが、彼らは、明示的に、android:exported="false"を持っている人を否定しているが、それらは能力その活動を開始します。

次のいずれかのAndroidチューは非エクスポートの活動をフィルタリングする必要があり

  1. Adob​​e Readerがエクスポートされないよう<intent-filter>、または
  2. Adob​​e Readerはそれをマークしていないことを持つべきではない、または

答えは#3でなければなりません - 私はこの問題の再現に取り組み、まだ問題がないと仮定して問題を提出します。短期的には、Adobeはこれを2億台のデバイスを修正するよりも速く修正することができます。 :-)

+5

提出と問題提出:http://code.google.com/p/android/issues/detail?id=29535 – CommonsWare

+0

迅速な対応とバグ報告に感謝します。私のアプリがクラッシュするのを防ぐために、少なくとも例外をキャッチする方法はありますか? 'startActivity'コールは送信インテントではなく、' startActivity'コールをチューザー内で呼び出すので、これを行う方法はありますか? – ashughes

+0

@ashughes:私が見ているスタックトレースに基づいて、私の推測は、どのようなグローバル例外ハンドラ(ACRAの場合など)の外側でも「いいえ」です。 – CommonsWare