package com.skychip.lock import android.content.Intent import android.net.Uri import android.os.Bundle import android.util.Log import io.flutter.embedding.android.FlutterActivity import io.flutter.plugin.common.MethodChannel import io.flutter.embedding.engine.FlutterEngine; import io.flutter.plugins.GeneratedPluginRegistrant import android.bluetooth.BluetoothAdapter; class MainActivity : FlutterActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) GeneratedPluginRegistrant.registerWith(flutterEngine!!) MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result -> if (call.method == "loadNativeShare") { var map = call.arguments as Map shareText(map["shareText"] , "分享") } else if (call.method == "sendGetBlueStatus") { // 蓝牙是否开启 // println("收到原生的信息了 methodmethodmethod: ${call.method}") val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter() var status = "0" bluetoothAdapter?.let { if (it.isEnabled) { // 蓝牙已开启 status = "1" } else { // 蓝牙已关闭 status = "0" } } ?: run { // 设备不支持蓝牙 status = "-1" } val flutterEngine: FlutterEngine? = this.flutterEngine // 获取你的 FlutterEngine 实例 MethodChannel(flutterEngine?.dartExecutor!!.binaryMessenger, "starLockFlutterReceive").invokeMethod("getBlueStatus", status) } else { result.notImplemented() // 没有实现的方法 } } } fun shareText(text: String?, subject: String = "", imageUrl: String = "") { val shareIntent = Intent().apply { action = Intent.ACTION_SEND putExtra(Intent.EXTRA_TEXT, text) type = "text/plain" // putExtra(Intent.EXTRA_SUBJECT, subject) // putExtra(Intent.EXTRA_STREAM, Uri.parse(imageUrl)) // type = "image/*" // addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) } startActivity(Intent.createChooser(shareIntent, null)) } override fun configureFlutterEngine(flutterEngine: FlutterEngine) { GeneratedPluginRegistrant.registerWith(flutterEngine); MethodChannel(flutterEngine.dartExecutor.binaryMessenger, "starLockFlutterSend").setMethodCallHandler { call, result -> println("methodmethodmethod: ${call.method}") // 在这里处理从 Flutter 发送过来的方法调用 if (call.method == "loadNativeShare") { println("methodmethodmethod: ${call.method}") } else { result.notImplemented() } } } }