首页 > 解决方案 > 如何从颤动代码读取或访问在 android 代码中创建的共享首选项?

问题描述

我以前在 Play 商店中有一个完整的 Android 代码,没有 Flutter,现在我有一半的 Android 代码和一半的 Flutter 代码。我的希望是,当我从 Flutter 安装一个新应用程序时,当使用 Android 全码的旧应用程序已经登录时,那么当新应用程序安装时,它也因为已登录而直接进入主页。

我如何阅读或访问?我保存在使用完整 android 代码的旧应用程序中的共享首选项登录数据。

我尝试了invoke方法,所以从flutter代码调用invoke方法函数在flutter应用程序本身中输入android代码,然后从android应用程序读取保存的共享首选项,然后我返回到flutter代码发送共享偏好,但我得到的只是空数据,即使我已经登录了。

这是我的代码

Flutter代码调用invoke方法

const platform = const MethodChannel('com.startActivity/test');
final String result = await platform.invokeMethod('migrationAndroidToFlutter');

安卓代码

if (call.method.equals("migrationAndroidToFlutter"))
            {
val mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this)
val username = mSharedPreferences.getString(MessageKey.USERNAME, "")

val user = ArrayList<String>()
user.add(username)

sharedChannel.invokeMethod("SharedPreferenceAndroid", user)
}

Flutter 代码处理程序调用方法

const platform = const MethodChannel('com.startActivity/test');
  platform.setMethodCallHandler((methodCall) async {
if(methodCall.method == "MigrationAndroidToFlutter"){
      var data = methodCall.arguments;
    var username = data[0];
    print(username);
}
}

标签: androidfluttersharedpreferences

解决方案


推荐阅读