1倾哺、文件、新建刽脖、新建flutter項(xiàng)目
image.png
2羞海、選擇flutter、下一步
image.png
3曲管、選擇類型為插件却邓,我這里選擇java
image.png
當(dāng)我們創(chuàng)建一個(gè)插件的時(shí)候,如何正確打開避免報(bào)紅院水?鼠標(biāo)移動到example>android文件夾腊徙,右鍵
image.png
image.png
image.png
最后是的MyFfPlugin代碼简十,
package com.example.my_ff;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.BatteryManager;
import android.os.Build;
import androidx.annotation.NonNull;
import io.flutter.embedding.engine.plugins.FlutterPlugin;
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;
/** MyFfPlugin */
public class MyFfPlugin implements FlutterPlugin, MethodCallHandler {
private MethodChannel channel;
private Context context;
@Override
public void onAttachedToEngine(@NonNull FlutterPluginBinding flutterPluginBinding) {
context = flutterPluginBinding.getApplicationContext();
channel = new MethodChannel(flutterPluginBinding.getBinaryMessenger(), "my_ff");
channel.setMethodCallHandler(this);
}
@Override
public void onMethodCall(@NonNull MethodCall call, @NonNull Result result) {
if (call.method.equals("getPlatformVersion")) {
result.success("Android " + android.os.Build.VERSION.RELEASE);
}else if (call.method.equals("getPlatformBatteryLevel")){
int batteryLevel=getBatteryLevel();
result.success("Android"+batteryLevel);
}else if (call.method.equals("getAppKey")){
result.success("Android key: asda2323264615++++");
}else {
result.notImplemented();
}
}
@Override
public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) {
channel.setMethodCallHandler(null);
}
// 獲取電池電量
private int getBatteryLevel() {
int batteryLevel = -1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
BatteryManager batteryManager = (BatteryManager) context.getSystemService(Context.BATTERY_SERVICE);
if (batteryManager != null) {
batteryLevel = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
}
} else {
Intent batteryIntent = new ContextWrapper(context)
.registerReceiver(null, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int level = batteryIntent != null ? batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) : -1;
int scale = batteryIntent != null ? batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1) : -1;
batteryLevel = (level * 100) / scale;
}
return batteryLevel;
}
}