iot_notification 0.8.71
iot_notification: ^0.8.71 copied to clipboard
A new Flutter plugin.
example/lib/main.dart
import 'dart:convert';
import 'package:flutter/services.dart';
import 'package:flutter/material.dart';
import 'package:iot_notification/iot_notification.dart';
void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
static const EventChannel _events = EventChannel('iot_notification_events');
@override
void initState() {
super.initState();
_events.receiveBroadcastStream().listen((Object? event) async {
if (event != null) {
print("ada event tidak null");
}
}
);
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Iot Notification Example'),
),
body: SingleChildScrollView(
child: Center(
child: Column(children: <Widget>[
ElevatedButton(
child: Text("Start Service"),
onPressed: () {
IotNotification.startService(
userAccessToken : "eyJhbGciOiJSUzUxMiJ9.eyJpYXQiOjE3NDAxMzE4OTAsIm5iZiI6MTc0MDEzMTg5MCwiZXhwIjoxNzQwMTc1MDkwLCJpc3MiOiJpb3Quc2FtZWxlbWVudC5jb20iLCJhdWQiOiJ1c2VyIiwicmVmIjowLCJzdWIiOiJIYW5pZmJ1ZGlvdG9rcyIsImlkdCI6NzYsImVtbCI6ImhhbmlmQHNhbWVsZW1lbnQuY29tIiwiaWRkIjoxLCJhcGkiOiJ4MXdVYTNwZUF1Y2FjZXFGaWZlMTJIYVpBVnNiUkdTayIsImRldiI6MX0.j6d0VYXW0kAWuaHU97TLwYewlSSEC10PLkSCySWEdKwaRNRyUrMIHSPXoH-CGUnBqcVIeVq6uPoNDJvff-J3-mdKiKf7Yl8qHxcbQxUKzNZeBp5dX--9wgv7cKkwNzvyOZSqzLq-23vdyPLlzCtevxdDBjyK3-nYBK2nJ1UtBfeWB_ZQm9I9khJ8jEjGkRe_tcDOnC4LcbQzqv2JWjjwtLAI-iHhRxe6ZnnStrO2i6l5Fm3pomD5ap8KQstNl-N7Bb9Pelc2Uu_uEOFP0fj8ttl2Dfi8R5ruh3hwGV_SlCmeco4aOGpgJyzGlVDyv2k-T2NJ14yIVN_YVQcWXIBTgHEibV7zpAaLJhYYLVVmu453Kg9tudk4pQIAbgTvZ_k8-vV5XFNvMHKgownqtvZ9qao068hQqgbP6gSeJmkp33eE4fzXtzj-nk6i6x_zK5ICfgGwL9aVIyQYaFXpWWIgUP2hqD2HbIwPQK7ZrjMD27U_YMe9jr2A3TBFnQE7SAwaBwKYSsEH94wZprN0rPDR3YcFbGB-kLnSHVtfemz_z76QfgVY8-m6WbudPCnELC_ZF3HDJU8DmN4n9RFEJIom_GaY_YzYpwS9xBYp6Wz7wtOkH3DkISD6vVs56PrHpZiq1PvqAx90EhjQcGvG2mUQ-QEYHP3civ1p6piTxSHSwLU",
userRefreshToken : "eyJhbGciOiJSUzUxMiJ9.eyJpYXQiOjE3NDAxMzE4OTAsIm5iZiI6MTc0MDEzMTg5MCwiZXhwIjoxNzU1NjgzODkwLCJpc3MiOiJpb3Quc2FtZWxlbWVudC5jb20iLCJhdWQiOiJ1c2VyIiwicmVmIjoxLCJzdWIiOiJIYW5pZmJ1ZGlvdG9rcyIsImlkdCI6NzYsImVtbCI6ImhhbmlmQHNhbWVsZW1lbnQuY29tIiwiaWRkIjoxLCJhcGkiOiJ4MXdVYTNwZUF1Y2FjZXFGaWZlMTJIYVpBVnNiUkdTayIsImRldiI6MX0.fAhGf8WuPo3vNmmfUgpPViqo3QbSgVxg2ggPGCXmkk9nSpGZodoyVVOALfAphCPQqdeFRxN4A2_Hlz8_Mpq-W6UMJVBOIVvd1ViDqGeGETrpEvEnoWIGOYx3WIWCDFuFBjMz_91EuvlfvZtnYildsaOsHuVm8XKi_GlxsIYDnuymlIYCS9JHU9Qau7erQFwVZaxE6RckFrrt04aiFDjPeyMS25i54Fy3ItWoNUHwC2Dgs5fRpwGgEOXVywCMfyi7Nd6mTzRPQhyW6pwLjrKZa7orY7e-UL5nWaGtx4eTwxS85Rc0UnETn38cIgHH9MlD1HFLTN87wQ8Ge6MYrnaGUlbmX9IfeGT2EBUO6V3CFraYT3eJTpJsdPnnkoogMbfAewgkovvIpSNsDn5cN9SkQrjSaxT1IXrdKgC6F6oobU_UfJBkAH7B1YRnAhy0jrzFJSoj5uqfF74RC53s_5Y3s8-YYgqjYthoJNKGYSsuf7ah6NwKRVEAyRV4Tecdk11Kzebqc1ZbFuT3m7FPTfXqPGAzkhq3Yl2Su4LIhl2Xqh4eVhYoonGNqfevdtSthWawIQgJ6CBRWafhSqD-NkAmiuBwHE76uE3ZSCKkEEc3Luxw8vwK-K_v38r-R7NgdSwUaUQYd6B85D-0lSqrKfesc74re4I526pu5bwG-iyZ-5E",
devAccessToken : "eyJhbGciOiJSUzUxMiJ9.eyJpYXQiOjE3NDAxMzE5MjMsIm5iZiI6MTc0MDEzMTkyMywiZXhwIjoxNzQwMTc1MTIzLCJpc3MiOiJpb3Quc2FtZWxlbWVudC5jb20iLCJhdWQiOiJkZXZpY2UiLCJyZWYiOjAsInN1YiI6IklvVCBEZXZpY2VzIiwiaWR0IjozLCJhcGkiOiJkbUkwT2t2b0ZSTFJ6SHUzSjN0RVdRYklYUXdEZUY5cSIsImRldiI6MX0.b_JL_cXIhJCvcoEKQH2n10BYEzld0fWPdXg5PG1TMlnDfnTjiPG45ddKGk-0etKzzUivPrg6Lw83hpHvf_QoCW0eDJ_LNjAT_hxFQE-X20AR_C6IJlJxl_h-XKlq2f43j1ieCAObmHOaJF6c2BUcjR-shcMvQvM5_6iLN7LW105R7bGS-5hXK9I2_aB9WhrNngvmEw_owkAnZkoPHSq-sOSP0_Kdq4P9rZqvmMg2nDGqwDsmcDinTWV-SvhO1l6UlgJ9_S2e4cfgRhlwWykTyC9tPpJxiek1CRW5hNghxuaCeMwCGusNAai1DeOZw33oU8EVP-BRjqzxI4kj8MUMzQGxXnYEqmdbQnemQjeAaSK4JlM83SLhBT1OLqkGIoZxksYUBNC7s7fWjvei6VXZ7uMCTkTtft7a07sBOXT1wDNiKUivxesb-7PbU-WuJ_7dysfBlwF72lIY-ullsg83yOy86DlDIJjGIAB2c1GrxOcfEt4FjEej-FpmU4wVpV7D6NjHt5P8dUas20ks5jWcGs0K23cUfTb8fCreAfotPyL16Xy87w00-ZpeLIyPKE8Du6p1z5KxSoUJEQkuUeo_jUTyFZfZMJOki7uTIx2RitfZMFMe75ePZyGaA5jYZBLS_eWqeNEauQbQKF17NO-g8pZUE4hNirbuv3KQkQdLCSI",
devRefreshToken : "eyJhbGciOiJSUzUxMiJ9.eyJpYXQiOjE3NDAxMzE5MjMsIm5iZiI6MTc0MDEzMTkyMywiZXhwIjoxNzU1NjgzOTIzLCJpc3MiOiJpb3Quc2FtZWxlbWVudC5jb20iLCJhdWQiOiJkZXZpY2UiLCJyZWYiOjEsInN1YiI6IklvVCBEZXZpY2VzIiwiaWR0IjozLCJhcGkiOiJkbUkwT2t2b0ZSTFJ6SHUzSjN0RVdRYklYUXdEZUY5cSIsImRldiI6MX0.ZMTTYXMk_LHgHKOYwHhWiMvf6Gi3_bPz3T8OIGk6giSe1dW06KqEGVdtTvH02cG0Xqhd6pxfy1H-FurQ19Ivpw8WeYScTPWmnIoHNlsuipLEKYapkKH2fsrGbklmwr0q431phcUiCdtExqyQx38ZMQeLQtu122I8E7wmuYeyv0M0lP6hu9RgRtvjzdMnbjiJ1XeibsNgdR9zfCTPXAnHW0A1pzoeR5hbdFmHB06pePi3QfshQyS5CH3_4PLz7U-YUeDiUPpaQq8VNBbRXNRrLnLmSkGCXhT2HmNYQpecaULeu99DcRyPsXPfbjgMHRA605Q93ln34Q1dHKIxXFJsmTdU5j6rUJSm2sgb_aGXZHC1ssk1MrS0ySqqT_yyGF1Bjmi5R6PGx3eP6SOM8VakfLVlpSw8qYwu-5chExtxOzhxXwTWwR0iDfiFrVsAsXY5F59PGupqIPHJ7DzBbj0AG9XNFzrbdl2eu92MXHz5ShNSRV2-9mDkyEEsaG8L_dghVfGa6BxIGk6z6gIMtlsEqjpuCRzVyio0WSjYHB_EvIX7cmIkPabVaVGvxhY5G1PLFqwaSB0wQMXSqmQyfeEKU3fMTXVR3dZrFQaqLphuWz7I6sylWLe4rtl70MpLRtU4fVj1SR9GjobL1Tifpa9oEGDmanb72irXXZSn_ARd664",
mqttClientIdentifier : "skdjskdjskdjskdjskdjskdjs-iniadalahidekuuntuk",
brokerAddress : "iot.samelement.com",
brokerProtocol : "ssl",
brokerPort : 8883,
authServer : "https://iot.samelement.com",
apiServer : "https://iot.samelement.com",
rootCA : ''
);
}),
ElevatedButton(
child: Text("Add Device"),
onPressed: () async {
IotNotification.addDevice(json.encode({
"id": "1213213",
"sn": "INISN",
"name": "DEVIA ABAL",
"state": "ready",
"desc": "UUN",
"developer_id": "1",
"options": null
}));
}),
ElevatedButton(
child: Text("Scan Barcode"),
onPressed: () async {
String? result = await IotNotification.scan();
print("QR CODE $result");
}),
ElevatedButton(
child: Text("Get Keys"),
onPressed: () async {
List<String> keys = await IotNotification.getKeys();
print(keys[0]);
print(keys[1]);
}),
ElevatedButton(
child: Text("Stop service"),
onPressed: () async {
IotNotification.stopService();
}),
ElevatedButton(
child: Text("Cancel alarm"),
onPressed: () async {
IotNotification.cancelAlarm();
}),
ElevatedButton(
child: Text("Request Alarm Permission"),
onPressed: () async {
IotNotification.requestAlarmPermission();
}),
ElevatedButton(
child: Text("IgnoreBatteryOptimization"),
onPressed: () async {
IotNotification.ignoreBatteryOptimization();
}),
ElevatedButton(
child: Text("OpenBatterySettings"),
onPressed: () async {
IotNotification.openBatterySettings();
}),
ElevatedButton(
child: Text("Request Post notification"),
onPressed: () async {
IotNotification.requestPostNotificationsPermission();
}),
ElevatedButton(
child: Text("Test Logger"),
onPressed: () async {
IotNotification.initLogger("dev", "debug", "username",
"password", "server", "sam-iot", "dev");
}),
ElevatedButton(
child: Text("OpenFileManager"),
onPressed: () {
IotNotification.openFileManager();
}),
ElevatedButton(
child: Text("Insert Event"),
onPressed: () {
IotNotification.insertEvent(sender: "System", title: "Random Title", description: "This is a description");
}),
ElevatedButton(
child: Text("Get All Events"),
onPressed: () async {
List<Events> events = await IotNotification.getAllEvents();
events.forEach((element) {
print("Nilainya ${element.id} ${element.createdAt.toString()}");
});
}),
ElevatedButton(
child: Text("Clear Events"),
onPressed: () {
IotNotification.clearEvents();
}
),
ElevatedButton(
child: Text("Show full screen intents"),
onPressed: () {
IotNotification.showFullScreenIntent();
}
),
])),
),
),
);
}
}