2012-02-13 26 views
2

剛開始玩Android,我試圖創建一個免費和付費版本的應用程序。我也是Java新手,但我已經在Eclipse中創建了一個簡單的工作應用程序,其中包含兩個主要項目(一個用於免費版本,另一個用於付費版本)。Android主項目與圖書館項目 - 如何通過項目之間的設置

我也有一個庫項目,其中包含共享代碼(活動,資源,字符串等),並由主項目引用。我想要做的(這可能是錯誤的方法)是啓用還是禁用庫代碼中的事情,具體取決於我是否運行免費或付費版本。

因此,例如我在圖書館項目中的主要活動,我想要做的事,如:

if (version == "free") //version would somehow be set by the main project 
{ 
    //disable a paid feature 
} 

很顯然,我需要在圖書館莫名其妙摸出我是否運行免費或付費主要項目,所以我可以在需要時啓用/禁用功能。什麼是最好的方法來做到這一點?例如,我可以在主項目中使用某種全局設置,並以某種方式在圖書館項目中閱讀 - 我不希望圖書館項目瞭解主項目,如果這樣做有道理的話?

我是一個快速學習可以隨意點我的任何物品的方向等

回答

2

你的代碼的工作,但我不知道你的存儲付費/免費標誌您的清單是最好的解決方案,如果你是使用相同的apk同時擁有免費和付費(解鎖)功能。相反,我會通過在庫項目中添加一個方法來做到這一點,該方法允許任何項目設置一個標誌是否應用程序是免費或付費的。

EX在庫項目:

void setAppPurchasedMode(boolean purchased) 
    { 
     appPurchased = mode; 
    } 

,並在您的圖書館,你可以檢查VS此標誌:

if (appPurchased) 
     // show unlocked content 

因此,在您的主項目,如果該應用程序已付款:

Library.setAppPurchasedMode(true); 
+0

謝謝 - 工作的一種享受,絕對比使用清單文件更好 – vinnyh 2012-04-10 17:48:54

1

OK我設法解決這個問題。在Application Manifest中,我只需設置android:label屬性並使用下面的代碼引用它。

在清單:

android:label="My Free App" 

引用這

//Are we using free or pro version? 
if (this.getApplication().getApplicationInfo().loadLabel(this.getPackageManager()).toString().equals("My Free App")) 
{ 
freeVersion = true; 
} else { 
freeVersion = false; 
}