0

I'm trying to get some data from Word Readable Shared Preferences of another application.

I'm sure that other application Shared Preferences is World Readable and name is present.

But I'm retrieving empty string.

Here is my code:

package com.example.sharedpref;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.widget.TextView;
import android.content.SharedPreferences;

public class MainActivity extends AppCompatActivity {
    private TextView appContent;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        appContent = (TextView) findViewById(R.id.test1);
        appContent.setText("Test Application\n");
        appContent.setText(getName(this));
    }
    protected String getName(Context context){
        Context packageContext = null;
        try {
            packageContext = context.createPackageContext("com.application", CONTEXT_IGNORE_SECURITY);
            SharedPreferences sharedPreferences = packageContext.getSharedPreferences("name_conf", 0);
            String name = sharedPreferences.getString("name", "");
        return  name; //HERE IS WHERE I PUT BREAKPOINT
        }

        catch (PackageManager.NameNotFoundException e) {
            return null;

        }
    }
}

Here is some debug I retrieve from debug mode:

Name is redacted

and piece of code from the app that I'm trying to access shared preferences:

    /* access modifiers changed from: protected */
    @SuppressLint({"WorldReadableFiles"})
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.activity_welcome);
        Editor edit = getApplicationContext().getSharedPreferences("name_conf", 0).edit();
        edit.putBoolean("FIRSTRUN", false);
        edit.putString("name", "Eddie");
        edit.commit();
        new DBHelper(this).getReadableDatabase();

PS. I Cant edit code of second app im trying access to! Something im missing?

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
MiBa
  • 1
  • 1

1 Answers1

0

You can not edit it from another apps, if you want, you can use FileWriter to create a txt file and use it in other apps

happy_coding
  • 1,064
  • 1
  • 13
  • 24
SaeeD
  • 80
  • 10