2016-09-19 20 views
2

我有一個經典案例,其中一個應用向我的其他應用提供內容。我知道使用具有簽名保護級別的許可可以保護內容提供商。但我擔心另一個方向。如果未安裝包含內容提供程序的應用程序,並且惡意應用程序包含具有相同權限的提供程序(我知道權限不應該意外衝突,但我在考慮惡意應用程序),該怎麼辦?我如何才能確保我的應用程序只查詢提供程序,如果它在具有相同簽名的應用程序中定義的?確認ContentProvider的簽名

我能想到的最接近的事情是通過包管理器找到我的其他應用程序,並驗證簽名是否匹配。由於我的其他應用程序具有內容提供程序,因此具有相同權限的另一個內容提供程序無法安裝在同一設備上。但是,我正在做這個包名和權限之間的聯繫。我希望有一個更清潔的方式。

回答

3

撥打撥打resolveContentProvider(),傳入權限字符串。這將爲您提供該字符串的ContentProvider的詳細信息。從那裏,檢查提供商包裹的簽名,看看它是否與你的相符。