簡體   English   中英

Android如何隱藏意圖發件人包?

[英]Android how to hide intent sender package?

應用程序包名稱 A,將帶有操作 ACTION_VIEW 和 url 數據的意圖發送到系統,應用程序 B 獲取並打開,但我只希望 B 打開意圖而不希望應用程序 B 獲取應用程序 A 的程序包名稱,怎么做?

找出發送 Intent 的包的唯一方法似乎是通過Acitvity#getReferrer() (取自這個 SO post )。 在其文檔中,明確說明了以下內容

返回有關誰發起此活動的信息。 如果啟動 Intent 包含Intent.EXTRA_REFERRER ,則將按原樣返回; 否則,如果已知,將返回包含啟動 Intent 的包名稱的Intent#URI_ANDROID_APP_SCHEME引用 URI。 如果無法識別引用者,則這可能返回 null——既沒有明確指定,也不知道涉及哪個應用程序包。

因此,您可以將Intent.EXTRA_REFERRER添加到您發送的意圖以覆蓋默認值。


參考

  1. https://stackoverflow.com/a/37761737
  2. https://developer.android.com/reference/android/app/Activity#getReferrer()
  3. https://developer.android.com/reference/android/content/Intent#EXTRA_REFERRER

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM