android:exported 屬性

android:exported
這個屬性用於指示該服務是否可以被其餘應用程序組件調用或跟它交互。若是設置爲true,則可以被調用或交互,不然不能。設置爲false時,只有同一個應用程序的組件或帶有相同用戶ID的應用程序才能啓動或綁定該服務。
它的默認值依賴與該服務所包含的過濾器。沒有過濾器則意味着該服務只能經過指定明確的類名來調用,這樣就是說該服務只能在應用程序的內部使用(由於其餘外部使用者不會知道該服務的類名),所以這種狀況下,這個屬性的默認值是false。另外一方面,若是至少包含了一個過濾器,則意味着該服務能夠給外部的其餘應用提供服務,所以默認值是true。
這個屬性不是限制把服務暴露給其餘應用程序的惟一方法。還能夠使用權限來限制可以跟該服務交互的外部實體。java


在項目中,若是想使用systemUI.apk中的screenshot.TakeScreenshotService 進行截屏,那麼須要把systemUI中的AndroidManifest.xml 的<service android:name=".screenshot.TakeScreenshotService">中添加android:exported="true"。那麼其餘應用app就能夠去訪問TakeScreenshotService 功能(函數)了。android


不然其餘app訪問systemUI的TakeScreenshotService 話,會報:app

Permission Denial: Accessing service ComponentInfo 函數

java.lang.SecurityException: Not allowed to bind to service Intentspa

這個錯誤xml

相關文章
相關標籤/搜索