2011-11-13 1 views
0

私はアンドロイドの共有設定の概念を理解していません。スマートフォン上のアプリケーションで共有されている事前共有はアクセス可能ですか?私は好みを保存するため、このクラスを使用する場合 :PreferenceActivityプライベート値として保存しますか?

public class ImpostazioniActivity extends PreferenceActivity { 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     addPreferencesFromResource(R.xml.impostazioni); 

    } } 

をアンダは後に、私が使用している他の活動に:

SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(getContext()); 
    if(preference.getString("username","").length() == 0 || preference.getString("password","").length() == 0) 
     return false; 
    else 
     return true; 

それは大丈夫?私は情報が私のアプリケーションでのみアクセス可能であると確信していますか? おかげ

+0

あなたは大丈夫です。 'PreferenceActivity'から拡張されたアクティビティは、アプリケーションのdefaultSharedPreferencesファイルを使用します。 – dmon

+0

ありがとう、あなた!電話の他のアプリケーションは私の好みを見ることができますか? – sintetico82

+0

いいえ、電話機を接続すると簡単に読むことができるプレーンテキストファイルです。@hovanessyanが示唆するように、重要なデータは暗号化する必要があります。 – dmon

答えて

1

引用:

SharedPreferencesは、アプリケーションのオブジェクトを取得するには、2つの の方法のいずれかを使用します。

getSharedPreferencesを() - 複数の好みの名前で識別さ ファイルを必要とする場合は、これを使用します最初のパラメーターで指定します。

getPreferences() - アクティビティ の環境設定ファイルが1つだけ必要な場合は、これを使用します。これはあなたの 活動のための唯一の環境設定ファイルになりますので、あなたが名前に

を提供しないPREFS_FILENAMEはあなたのアプリケーションを使用したいと Context.MODE_PRIVATEファイルは、ファイル作成モードでいる場合ですから、getSharedPreferences(PREFS_FILENAME, Context.MODE_PRIVATE)を使用する必要があります作成されたファイルは、呼び出し元のアプリケーション(または同じユーザーIDを共有するすべてのアプリケーション)によってのみアクセスできます。

EDIT:あなたのコードを調べましたが、機密ユーザー情報(パスワードなど)を保存する場合は、まず暗号化する必要があります。このObscuredSharedPreferences implementationをご覧ください。 SharedPreferencesでデータを暗号化/復号化することができます。

関連する問題