2012-02-10 17 views
1

我有一個具有不同活動的應用程序。其中一項活動可以從其他應用程序中調用。Android允許僅對預定義活動/包進行調用

有沒有一種方法可以設置只能從指定的應用程序(例如com.other.application和com.different.application)調用此特定活動的權限。我會在AndroidManifest.xml或其他地方配置允許的應用程序。

感謝

+0

「這些活動之一可以從其他應用程序調用。「這隻有在你宣佈它能做到的時候纔有可能。所以我不太瞭解這個問題。默認情況下,您的Manifest中聲明的任何活動都不會響應隱式意圖,因此其他應用程序無法處理這些效果。 – Matthias 2012-02-10 08:44:07

+0

請參閱此鏈接(http://developer.android.com/reference/android/content/IntentFilter.html) – 2012-02-10 08:58:02

回答

0

您可以宣佈你的活動可訪問或不應用程序包的外面,但是對於訪問某些應用程序或某些不是不可行的。

爲了讓私人你的應用的活動,你需要設置活動的財產清單:exported=false;

+0

感謝您的回答,我不能投票,因爲我缺少聲譽:) 我已結束一個小動作: 'Bundle extras = getIntent()。getExtras(); if(extras == null || extras.getString(「username」)== null){ \t //檢查密碼 \t this.finish(); \t return; }' 現在,如果應用程序提供正確的用戶名和密碼,它們可以打開該活動。 – 2012-02-10 11:06:25

3

您可以定義自己的權限,只允許請求的權限訪問該功能的應用程序。

定義權限上的活動

<permission android:name="uk.co.packagename.mypermission"/> 

設置權限

<activity android:permission="uk.co.packagename.mypermission" android:name=".ActivityName"/> 

使用許可

<uses-permission android:name="uk.co.packagename.mypermission"/> 
相關問題