1

getDefaultSharedPreferences(con)アプリケーションで設定を保存するために使用しています。ここで、別のアプリケーションでこの共有設定にアクセスしたいと考えています。私は次の方法を使用しました:

con = this.createPackageContext("com.example.preferences", Context.CONTEXT_INCLUDE_CODE | Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences filePref = PreferenceManager.getDefaultSharedPreferences(con);
            if(filePref != null){
                Toast.makeText(getApplicationContext(), "file pref not null --- ", Toast.LENGTH_LONG).show();   
            }else{
                Toast.makeText(getApplicationContext(), "file pref is null **** ", Toast.LENGTH_LONG).show();
            }
            Map<String,?> allkeys = filePref.getAll();
            Toast.makeText(getApplicationContext(), "file pref size **** "+allkeys.size(), Toast.LENGTH_LONG).show();
            for(Map.Entry<String,?> entry : allkeys.entrySet()){
                Toast.makeText(getApplicationContext(), "~~~ file pref --- map values --- "+entry.getKey() + ": "+entry.getValue().toString(), Toast.LENGTH_LONG).show();
            }

試した別の方法は、次のようにファイル名を指定してアクセスすることです。

SharedPreferences filePref = gvcon.getSharedPreferences("com.example.preferences_preferences", Context.MODE_PRIVATE);

このメソッドを使用SharedPrefernceすると、ファイルにアクセスできます。ファイルがnullではありませんが、ファイルサイズを確認すると0が表示されます。ファイルから設定値を読み取ることができません。別のアプリケーションを使用shareduseridして、そのアプリケーションに完全にアクセスできるようにしました。これについての適切な方法は何ですか?

4

1 に答える 1