在本机中获取共享首选项变量

时间:2017-10-16 08:08:18

标签: android sharedpreferences react-native-android

我正在使用react native(android)编写一个应用程序。我想在共享首选项中保存fcm令牌,并希望在本机中访问此令牌。如何可能?以下是我在android中用于生成令牌和保存到共享首选项的代码。那么如何在本机中访问此令牌。有人请帮助我..

MyInstanceIDListenerService.java

public class MyInstanceIDListenerService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();
    Log.d(TAG, "Refreshed token: " + refreshedToken);
    storeToken(refreshedToken);
}
private void storeToken(String token) {
    //saving the token on shared preferences
    SharedPrefManager.getInstance(getApplicationContext()).saveDeviceToken(token);
}
}

SharedPrefManager.java

public class SharedPrefManager {
    private static final String SHARED_PREF_NAME = "FCMSharedPref";
    private static final String TAG_TOKEN = "tagtoken";

    private static SharedPrefManager mInstance;
    private static Context mCtx;

    private SharedPrefManager(Context context) {
        mCtx = context;
    }

    public static synchronized SharedPrefManager getInstance(Context context) {
        if (mInstance == null) {
            mInstance = new SharedPrefManager(context);
        }
        return mInstance;
    }

    //this method will save the device token to shared preferences
    public boolean saveDeviceToken(String token){
        SharedPreferences sharedPreferences = mCtx.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putString(TAG_TOKEN, token);
        editor.apply();
        return true;
    }
}

1 个答案:

答案 0 :(得分:0)

React并不提供所有组件,更像是构建自己的组件。 React提供了实现自己组件的基本构建块 遇到您遇到的问题,您可以编写own component或者使用this之类的库来读取/写入共享首选项中的数据。