4

,我發現了以下異常期間ACTION_SEND意圖與數據類型application/pdf的Android拋出:SecurityException對PDF發送意向

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。我相信當用戶從列表中選擇Adobe Reader時,會拋出SecurityException,但它似乎是專門打開ARSendForSignature活動的。

任何想法?

回答

13

根據您的觀點,您遇到Adobe Reader應用程序中的錯誤或Android中的錯誤。

如果Adobe Reader ARSendForSignature活動支持ACTION_SEND<intent-filter>,但他們明確有android:exported="false",它拒絕任何人,但他們的能力來啓動該活動。

或者:

  1. ADOBE READER不應有<intent-filter>,或者
  2. ADOBE READER不應該將其標記爲不出口,或
  3. Android的一個選擇者應當過濾掉非出口活動

長期來看,答案應該是#3 - 我將致力於解決這個問題,並提出一個問題,假設還沒有問題。短期來看,Adobe可以修復這個問題比我們能夠修復數億臺設備更快。 :-)

+5

轉載和問題提交:http://code.google.com/p/android/issues/detail?id=29535 – CommonsWare 2012-04-25 17:00:10

+0

感謝您的快速響應和提交錯誤。我有什麼辦法可以至少捕捉異常,以防止我的應用程序崩潰?由於它不是由發送意圖的'startActivity'調用引發的,而是在選擇器中的'startActivity'調用......有沒有辦法做到這一點? – ashughes 2012-04-25 17:10:06

+0

@ashughes:根據我所看到的堆棧跟蹤,我的猜測是「否」,除了可能存在的全局異常處理程序外(例如,對於ACRA)。 – CommonsWare 2012-04-25 17:15:31

相關問題