2011-07-26 9 views
1

私の要件は、最初のアプリケーションがAndroidフォンにインストールされていることです。特定のショップ/組織からライセンスコードを取得する必要があります。私は電話のモデル番号を使用して生成キーを作成しました。問題は、最初の場合は最初にライセンス画面を表示する必要がある場合は最初の画面に移動します。特定のアプリをどのように特定できるかは、すでにインストールされているかどうかによって決まります。 /レジストリから?ここでレジストリが利用可能です。Android Application Registy

私は非常に深くまたははっきりと探検することができませんでした。そのために残念。

私を助けてください。

事前に感謝しますが...

+0

このようなものを使用することができます。 http://stackoverflow.com/questions/5905240/showing-preference-screen-first-time-app-is-run-and-related-questions – sealz

+0

これは私の要求とは異なるものです。私はアプリケーションのID /アプリケーション名などをインストールする必要がありますか? – Piraba

+0

ありがとうharper89。そのうまく動作します。あなたは正しいです。 – Piraba

答えて

1

android.content.SharedPreferencesにbool値を設定してから、最初のoncreate()チェックでそのbool値がfalseかどうかを確認できます。

ライセンス画面の意図を押して、アプリケーションのチェックを実行すると、環境設定がtrueに更新されます。次回の起動時には、メイン画面を読み込むことができます。

@Override 
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 

settings = getSharedPreferences(PREFS_NAME, 0); 
boolean enteredDetails = settings.getBoolean("FirstTime", false); 



if(enteredDetails){ 
setContentView(R.layout.main); //loads the main screen    
} 
else{ 
startActivityForResult(new Intent(this, License.class), GET_DETAILS); 
} 
} 
+0

ありがとうございました。そのうまく動作します。 – Piraba

+0

ようこそ。ライセンスビューの[戻る]ボタンを無効にすることを忘れないでください。そうしなければ、アプリケーションは終了します。そうでなければ、ホームページに戻ります:) – tutts

0

あなたは、単にライセンス画面がすでに示されたかどうかのアプリを教えてくれる情報の一部を保存するためにContext.openFileInput()/Context.openFileOutput()を使用することができます。この方法で、あなたのメインのActivityさんonCreate()にこのようなものを使用することができます。

if (nothingWrittenInAFileCalled(FILE_NAME)) { // using Context.openFileInput() 
    showLicense(); 
    writeAFileCalled(FILE_NAME); // using Context.openFileOutput() 
} 

これが十分でない場合、これはまた、あなたがライセンスサーバー側で確認することができるものです。たとえば、ライセンスサーバーにIMEIのハッシュを送信すると、ライセンスサーバーはアプリが既にインストールされているかどうかを判断できます。その場合、非可逆ハッシュを優先します。これは、この情報をプライベートデータとして見ることができるため、IMEIの送信/格納を回避するためです。