android - 如何从颤动代码读取或访问在 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);
}
}
解决方案
推荐阅读
- keyboard - Pi400 上的键映射不正确
- rspec - 在 RSpec 和 Capybara 中是否有可以用来代替“expect(page).to”的别名?
- javascript - 将 jquery 转换为反应 - 无需切换的 addclass 和 removeclass 函数
- reactjs - React 功能组件在重新挂载后停止渲染状态更改
- google-apps-script - 移动行谷歌表
- javascript - 谷歌地图 API 确定缩放级别?
- go - 当我使用`go install`时,它返回的不是主包
- java - How to get a element(at head) form ConcurrentLinkedQueue in java without removing the element
- go - How to deal with channels / "blocking" operations in Go?
- .net - 通过 Visual Studio 2022 发布具有 C# 10 隐式使用的 .NET 6 项目