2011-06-29 3 views
3

この記事では有料のライブラリと無料のライブラリを使用しています。これは特に次のように述べています: "ライブラリプロジェクトのコードでテストできる、有料または無料の状態を示す論理的なリソースを持つことが可能であり、それに応じて機能がオンまたはオフに切り替わります。リソースを解放し、空きのバージョンを空きの値に上書きします。どのようにして、私はどのようにしてフリーバージョンで上書きできるブール値を作ることができますか?基本的に、アプリが無料版で広告を表示するという共通のライブラリコードで何かできますか?Androidの場合、無料のアプリと有料のアプリを同じライブラリで区別する方法を教えてください

+0

これはまだ分かっていますか?私は同じ種類のことをやりたいと思っています。 – dell116

答えて

5

これを行う1つの方法は、値が「カスケード」であるため、文字列リソースファイルを使用することです。

ライブラリコードは、フリープロジェクトと有料プロジェクトの両方にコピーされ、そのプロジェクトのコンテキストで実行されます。つまり、「ローカル」文字列リソースが最初に表示されます。

ライブラリプロジェクトで文字列リソース名も指定している場合は、コンパイルされますが、実行時にはより多くの「ローカル」値が使用されます。あなたのライブラリプロジェクトで

は、名前の文字列を指定して、あなたの自由なプロジェクトでのres /値/のstrings.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<resources> 
    <string name="app_name">My app</string> 
    <string name="paid">false</string> 
</resources> 

に "支払った"、指定:あなたの支払ったプロジェクトで

<string name="paid">false</string> 

、指定:

<string name="paid">true</string> 

あなたは今、あなたのライブラリプロジェクトでこれにアクセスすることができます。

boolean paid = Boolean.parseBoolean(getString(R.string.paid)); 

無料プロジェクトを実行すると、Falseが表示され、有料プロジェクトを実行するとTrueがレポートされます。

その後、あなただけ離れているブールとブランチをチェックする必要が...

if(!paid) { 
    //show an ad (or whatever) 
} 

if(paid) { 
    //load more game levels (or whatever) 
} 
0

だけでなく、Androidの。他のプラットフォームでは通常の場合です。情報は、ユーザーのデバイスまたはサービス(サイトがある場合)に保存できます。その後、ユーザーがアプリケーションを使用するときにチェックします。

Androidでは、SharedPreferencesを使用できます。

関連する問題