From 5a9c6adfda83a50c2566bc0651374c6b3d820292 Mon Sep 17 00:00:00 2001
From: projectuser <projectuser@leon056.com>
Date: 星期五, 26 十一月 2021 14:28:20 +0800
Subject: [PATCH] init
---
android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java | 79 +++++++++++++++++++++++++++++++++++++++
1 files changed, 79 insertions(+), 0 deletions(-)
diff --git a/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java b/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java
new file mode 100644
index 0000000..645b8dd
--- /dev/null
+++ b/android/src/main/java/io/flutter/plugins/packageinfo/PackageInfoPlugin.java
@@ -0,0 +1,79 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package io.flutter.plugins.packageinfo;
+
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import android.os.Build;
+import io.flutter.embedding.engine.plugins.FlutterPlugin;
+import io.flutter.plugin.common.BinaryMessenger;
+import io.flutter.plugin.common.MethodCall;
+import io.flutter.plugin.common.MethodChannel;
+import io.flutter.plugin.common.MethodChannel.MethodCallHandler;
+import io.flutter.plugin.common.MethodChannel.Result;
+import java.util.HashMap;
+import java.util.Map;
+
+/** PackageInfoPlugin */
+public class PackageInfoPlugin implements MethodCallHandler, FlutterPlugin {
+ private Context applicationContext;
+ private MethodChannel methodChannel;
+
+ /** Plugin registration. */
+ @SuppressWarnings("deprecation")
+ public static void registerWith(io.flutter.plugin.common.PluginRegistry.Registrar registrar) {
+ final PackageInfoPlugin instance = new PackageInfoPlugin();
+ instance.onAttachedToEngine(registrar.context(), registrar.messenger());
+ }
+
+ @Override
+ public void onAttachedToEngine(FlutterPluginBinding binding) {
+ onAttachedToEngine(binding.getApplicationContext(), binding.getBinaryMessenger());
+ }
+
+ private void onAttachedToEngine(Context applicationContext, BinaryMessenger messenger) {
+ this.applicationContext = applicationContext;
+ methodChannel = new MethodChannel(messenger, "plugins.flutter.io/package_info");
+ methodChannel.setMethodCallHandler(this);
+ }
+
+ @Override
+ public void onDetachedFromEngine(FlutterPluginBinding binding) {
+ applicationContext = null;
+ methodChannel.setMethodCallHandler(null);
+ methodChannel = null;
+ }
+
+ @Override
+ public void onMethodCall(MethodCall call, Result result) {
+ try {
+ if (call.method.equals("getAll")) {
+ PackageManager pm = applicationContext.getPackageManager();
+ PackageInfo info = pm.getPackageInfo(applicationContext.getPackageName(), 0);
+
+ Map<String, String> map = new HashMap<>();
+ map.put("appName", info.applicationInfo.loadLabel(pm).toString());
+ map.put("packageName", applicationContext.getPackageName());
+ map.put("version", info.versionName);
+ map.put("buildNumber", String.valueOf(getLongVersionCode(info)));
+
+ result.success(map);
+ } else {
+ result.notImplemented();
+ }
+ } catch (PackageManager.NameNotFoundException ex) {
+ result.error("Name not found", ex.getMessage(), null);
+ }
+ }
+
+ @SuppressWarnings("deprecation")
+ private static long getLongVersionCode(PackageInfo info) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+ return info.getLongVersionCode();
+ }
+ return info.versionCode;
+ }
+}
--
Gitblit v1.8.0