A Flutter plugin for using imin vice screen sdk in Android
| Android |
|---|
| ✅ |
flutter pub add imin_vice_screenor Make a reference in the “pubspec.yaml” file
dependencies:
imin_vice_screen: ^0.0.1Use flutter to draw the main and secondary screens, and use the encapsulation capability to communicate the main and secondary screens:
void main() {
var defaultRouteName = window.defaultRouteName;
if ("viceMain" == defaultRouteName) {
viceScreenMain();
} else {
defaultMain();
}
}
//主屏ui
void defaultMain() {
runApp(MainApp());
}
//副屏ui
void viceScreenMain() {
runApp(SubApp());
} import 'package:imin_vice_screen/imin_vice_screen.dart';
final _iminViceScreenPlugin = IminViceScreen();
/// 1. send Message
_iminViceScreenPlugin.sendMsgToViceScreen("data", params: {"params": "123"});
/// 2. receive subScreen Message
_iminViceScreenPlugin.mainStream.listen((event) {
print("mainScreen receive data:${event}");
})
import 'package:imin_vice_screen/imin_vice_screen.dart';
final _iminViceScreenPlugin = IminViceScreen();
/// 1. send Message
_iminViceScreenPlugin.sendMsgToMainScreen("data", params: {"params": "456"});
/// 2. receive mainScreen Message
_iminViceScreenPlugin.viceStream.listen((event) {
print("mainScreen receive data:${event}");
})
bool isSupportMultipleScreen = await _iminViceScreenPlugin.isMultipleScreen();
print("isSupportMultipleScreen:$isSupportMultipleScreen"); bool checkOverlayPermission = await _iminViceScreenPlugin.checkOverlayPermission();
print("checkOverlayPermission:$checkOverlayPermission");1.5 (other Methods) Apply for an overlay window permission to set the secondary screen as a persistent window
await _iminViceScreenPlugin.requestOverlayPermission(); await _iminViceScreenPlugin.doubleScreenOpen(); /// open
await _iminViceScreenPlugin.doubleScreenClose(); /// closeandroid -> values -> attrs.xml Add configuration
<!-- 是否在初始化时自动显示副屏 -->
<bool name="autoShowSubScreenWhenInit">true</bool> -- sendLCDCommand
import 'package:imin_vice_screen/enums.dart';
import 'package:imin_vice_screen/imin_vice_screen.dart';
final iminViceScreenPlugin = IminViceScreen();
await iminViceScreenPlugin.sendLCDCommand(LCDCommand.initLCD); // init LCD
await iminViceScreenPlugin.sendLCDCommand(LCDCommand.wakeLCD); // wake LCD
await iminViceScreenPlugin.sendLCDCommand(LCDCommand.sleepLCD); // sleep LCD
await iminViceScreenPlugin.sendLCDCommand(LCDCommand.cleanScreenLCD); // clean Screen-- sendLCDString
import 'package:imin_vice_screen/imin_vice_screen.dart';
final iminViceScreenPlugin = IminViceScreen();
await iminViceScreenPlugin.sendLCDString('hello world');-- sendLCDString
-- parameter:
--- String content
import 'package:imin_vice_screen/imin_vice_screen.dart';
final iminViceScreenPlugin = IminViceScreen();
await iminViceScreenPlugin.sendLCDString('hello world');-- sendLCDMultiString
-- parameter:
-- String[] contents
-- int[] aligns
import 'package:imin_vice_screen/imin_vice_screen.dart';
final iminViceScreenPlugin = IminViceScreen();
await iminViceScreenPlugin.sendLCDMultiString(contents: ["سعيد بلقائك", "Des", "Hi"], aligns: [0, 1, 2]);-- sendLCDDoubleString
-- parameter:
-- String topText
-- String bottomText
import 'package:imin_vice_screen/imin_vice_screen.dart';
final iminViceScreenPlugin = IminViceScreen();
await iminViceScreenPlugin.sendLCDDoubleString(
topText: 'Top Cotent', bottomText: 'Bottom Cotent');-- sendLCDBitmap
-- parameter:
-- dynamic byte -> img URL Or Byte
import 'package:imin_vice_screen/imin_vice_screen.dart';
final iminViceScreenPlugin = IminViceScreen();
// use Byte
Uint8List byte = await readFileBytes('assets/images/logo.png');
await iminViceScreenPlugin.sendLCDBitmap(byte);
// or use URL
await iminViceScreenPlugin.sendLCDBitmap(
'https://oss-sg.imin.sg/web/iMinPartner2/images/logo.png',
pictureStyle: IminPictureStyle(
width: 240,
height: 320,
));-- setTextSize
-- parameter:
-- int size -> font size
import 'package:imin_vice_screen/imin_vice_screen.dart';
final iminViceScreenPlugin = IminViceScreen();
await iminViceScreenPlugin.setTextSize(15);