72 lines
3.0 KiB
Kotlin
Raw Normal View History

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<String, String>
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()
}
}
}
}