2011-02-17 30 views
0

希望的術語是正確的,因爲我是比較新的Android應用程序的開發,但...如何判斷一個服務可以在我的應用使用

我怎麼可以跟以下:

1)如果另一個應用程序提供我的應用程序可以使用的「服務」? 2)如何訪問它?

這是我正在談論的一個例子。

假設我知道一個提供餐廳位置的應用程序(我認爲有幾個應用程序),並且我創建了一個應用程序來評價意大利餐廳。用戶輸入意大利餐廳的名稱(進入我的應用程序),我的應用程序發出評論,並且使用「餐廳定位器應用程序」提供的信息向用戶展示該餐廳在哪裏。

我的問題是:如何知道「餐廳定位器應用程序」是否爲我的應用程序提供此信息以及如何使用 - 如何訪問它?

不在這裏尋找代碼示例 - 只是一般的解釋。

謝謝!

回答

0

有點切,但我用下面來看看有沒有什麼事情是一個意圖行動作出迴應:

public static boolean doesIntentHaveServices(final Context context, 
      final String action) { 
     final PackageManager packageManager = context.getPackageManager(); 
     final Intent intent = new Intent(action); 
     final List<ResolveInfo> list = packageManager.queryIntentServices(intent, 0); 
     return list.size() > 0; 
    } 

你可以改變queryIntentServicesqueryBroadcastReceivers多。 See the PackageManager documentation.

0

該技術存在,它被稱爲內容提供者。請參閱ContentResolver的文檔以獲取客戶端訪問,ContentProvider實現服務。

現有的餐廳定位器應用程序是否確實有應用程序可以調用的內容提供商是另一個大問題。恕我直言,恕我直言。即使他們這樣做,模式在應用程序之間很可能也會有所不同。

要列出特定應用程序具有的提供程序,請使用PackageInfo類。

相關問題