2011-08-17 29 views
0

我有兩個android應用程序簽署了相同的證書。此外,我通過在「intent-filter」標籤中指定名稱來使用其他Android應用程序中的一個應用程序的活動。但由於「intent-filter」標籤,任何第三方應用都可以調用我的活動。創建權限來限制第三方應用程序調用活動android

由於兩個應用程序都簽署了相同的證書,我是否可以通過提供一些權限來限制其他應用程序調用我的活動?任何建議都會對我有所幫助。

-Ron ...

回答

0

首先,你也許可以刪除的意圖過濾器,如果並不意味着您的活動由比你的其他應用程序使用;爲什麼不使用明確的意圖呢? 因此您的活動不能爲「錯誤」創建,但只有故意,例如:

Intent explicitIntent = new Intent(InvokingActivity.this, InvokedActivity.class); 
startActivity(explicitIntent); 

然後,甚至防止來自外部的,你可以定義自己的自定義權限並將其添加到您的活動;看看權限的android:protectionLevel屬性,其值可以是「簽名」。

+0

感謝您的迴應,我使用意圖過濾標籤,因爲一個活動得到共享btwn兩個應用程序。你也可以請張貼一些關於如何使用android:protectionLevel =「簽名」進行活動的例子嗎? – Ron

+0

這兩個應用程序不知道要直接調用的類,因此您可以使用明確的意圖(請參閱我的示例)而不是隱式的(即通過意圖過濾器)? – darma

+0

其實,這裏的問題是我有共享的登錄活動。如果我使用明確的意圖,那麼在一段時間後,如果我創建一個新的應用程序,那麼我需要修改這個明確的意圖。所以我使用了intent-filter標籤,這樣我只會從應用中調用intent名稱。現在,即使我創建了一個新的應用程序,然後只使用意圖名稱將幫助我調用登錄活動。 – Ron