Android Получить общие настройки другого приложения - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь получить данные из общедоступных настроек Word для другого приложения.

Я уверен, что Shared Preferences другого приложения доступен для чтения и имя присутствует.

Но я получаю пустую строку.

Вот мой код:

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;

        }
    }
}

Вот некоторая отладка, которую я возвращаю из режима отладки:

Изображение здесь: Name is redacted

и фрагмент кода из приложения, в котором я пытаюсь получить доступ к общим настройкам: -

    /* 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. Я не могу изменить код второго приложения, я пытаюсь получить доступ к! Что-то мне не хватает?

...