iot_notification 0.8.57
iot_notification: ^0.8.57 copied to clipboard
A new Flutter plugin.
example/lib/main.dart
import 'dart:convert';
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> {
@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 : "eyJhbGciOiJSUzUxMiIsImtpZCI6IjZyMUF2MS1zNEN1SnhlUzlIRkRwUVN0V1VPSVY5U3Fiai1OWW0zSm81OEEifQ.eyJpYXQiOjE3MTg3NzgxNjMsIm5iZiI6MTcxODc3ODE2MywiZXhwIjoxNzE4OTUwOTYzLCJpc3MiOiJhcGktcHVibGljLnNhbWVsZW1lbnQuY29tIiwiYXVkIjoidXNlciIsInJlZiI6MCwic3ViIjoiSGFuaWYiLCJpZHQiOjYsImVtbCI6ImhhbmlmQHNhbWVsZW1lbnQuY29tIiwiaWRkIjoxLCJhcGkiOiJrUDh4TVNveWJHazhHbmlLc2dORXZyS3BWakRMenNLZyIsImRldiI6MX0.TDQUNSqtbLSju4kvCp9Y-Xx07pMNEPu0-J8sGFy8CGsK5TCqoqCmlPOCJ5kS3pFqasQmGKxGUDpyMU24AZ_fwgyJwtVkr4bF5yu_dQDrGScSaJ0Hf1vx4F57w85Of_eMcq2WbQyKP24TDYpRbEnrpFyE3GzeDcIH5B1S0Ycpe01vdJ06GCp4YoLcIuw_kYTPA42hJNQoSUgajxsvpwjL8LKFfqXHMvZk7_KPpyS-5Eee7gXqM9icFW5voG5joDm8tFJRKG-2yNYemG917tvtjbs57OfQsWJwtcMWjS86ZbStcjZ3XkpKJxeo0VyZAF_Nl2NumYikSkCUhTVX0E-dDQC4aPm5jlS4B-8D9PMuc5LMPfwTzpX6QWIJj3xipqa6aRrXgtkitRFOf7TrKqZmLsOnO-DqPnpUUv-xnVCADu_NkCGVNJkFD-K9kbrqtCbAq28DFWFxxYv_GgogTECA4NyamSHN_edD3y-ce-YLBldRUIAwMyh-rpyjrZBADOme4JB2kF5pHvQ64hsjehek0TUTdIKTxkPTIWdpGoYZQuCNqrPIL3fBlRI7s-_w2u4VhLHfhlrRujMPGNEpCx-97Mlwhk9Ju92tHI5oPUMjJRn_OGvk1xp6t29jY1-hQJePumsN_ReEEfDGefIlG5QsFUIbtZrqIQEakc-t-9MmXCI",
userRefreshToken : "eyJhbGciOiJSUzUxMiIsImtpZCI6IjZyMUF2MS1zNEN1SnhlUzlIRkRwUVN0V1VPSVY5U3Fiai1OWW0zSm81OEEifQ.eyJpYXQiOjE3MTg3NzgxNjMsIm5iZiI6MTcxODc3ODE2MywiZXhwIjoxNzE4ODY0NTYzLCJpc3MiOiJhcGktcHVibGljLnNhbWVsZW1lbnQuY29tIiwiYXVkIjoidXNlciIsInJlZiI6MSwic3ViIjoiSGFuaWYiLCJpZHQiOjYsImVtbCI6ImhhbmlmQHNhbWVsZW1lbnQuY29tIiwiaWRkIjoxLCJhcGkiOiJrUDh4TVNveWJHazhHbmlLc2dORXZyS3BWakRMenNLZyIsImRldiI6MX0.E-l0jGGLvB3Hm7T5gCMv090X0XMVK43X4sfWPeWU-07cpE_EPYh-vavviH6cQh1jIzCVKkUPKtUjsU-i8wkWs3hmtptzMsM1KoCAovocVGO07FIY3WbAjibVb_rmM0uOSy9WgKeQ3_9Z5077MPKvhc0z57xrqJj8AO5nhAxIJ5TUWGccRfDxysk_QjcyUEpNmiblkpbpLGNNdef8poxUaTr2KIR4PRLGyqPNzE1z9ET5bfD1Jz1yiy8CQo1z6dL9BXLV_ozNTRu4DfyJ8bXGw8tmDs2T4aNwuFx6IO1NpmBeUXy6JL3pGTbHiTqLjw4V_sE0ZP7FI8HZXTVJlKwgVPJ-y7kqKGYgN-IrQ5qnHSBX8km9U9BYiEdEaxoHM4QrkuEDIa5tzxVaI7lsu9KCuEvX9x2g6qRyeDwkoFYzWxjXxu3xy1_CS-b9zpRM0CEbrqOB8rkrl_YrWYEJpJVuZvo4dTULWItO-NWs7DSQ8pPwzyW4k-paBKm7HOBPGadVlnuYbOOxAnDsmjQVVVtmR_57vWQa4W_Cprtq0_zOP9C1P6WYGnIULvPMBS29a1BzCAYby0Jb5CmRqpKHWVx4NXC3b0iEfBjUVEOc9ZKjaLN3GATg8k9O3ueJKE4U3pTcoyByzlduIonMXya_l3pymsUER5rVSw18B0UD-ojAX_c",
devAccessToken : "eyJhbGciOiJSUzUxMiIsImtpZCI6IjZyMUF2MS1zNEN1SnhlUzlIRkRwUVN0V1VPSVY5U3Fiai1OWW0zSm81OEEifQ.eyJpYXQiOjE3MTg3ODQzNzksIm5iZiI6MTcxODc4NDM3OSwiZXhwIjoxNzE4OTU3MTc5LCJpc3MiOiJhcGktcHVibGljLnNhbWVsZW1lbnQuY29tIiwiYXVkIjoiZGV2aWNlIiwic3ViIjoiYXBpLXB1YmxpYyIsInJlZiI6MCwiYXBpIjoiZTBGYUUwRlFFWm5LZ21jUXFLVzEzT2kweE5XcE9kbUoiLCJkZXYiOjF9.LZqTBzJR5z_L6VODsPFDR8F5AHIh5flZaunXOHoqyLjlGHuKVFcXmdKWlpt1XjYR3UwFoiqNkhoLATOSEYdRsTG5XzwTzMZLqMmQJhTxY5ERbW5tef9va0JbkM0PqYn_nB6weD518xYV88rGCQL5-aujZaIdXG7fjtL75JS6CwVZbvFC6cY3iRX6jqQMYj6yiGUKmYzZaINwyu5WVpXfGxS6mdleKnwyLFLVhKRbNpiJ-36Pbe2QymPtHL66oZ1Yq2HTJWhZzvEBHUMZ4sRN-vjn0-NwffhZLZ-6HPzTaynatvd0q9PSUFIW0c7MJEiy3BIOJ-d1ZlPvG7FcWMODxS5esSmcZRDY_P7eDmrlwui43NgFlCQ9KObjTMPp03MnwFnhEmiHk5wNv-V5fCbfku1o2Sh4F6Ied9-gKoI_N6cHW2tP91nTkludThLqUUKm6bMXvlDhW1x7c38vyq6RYmb7CwYzydcm3wiNrxL8ur8VbH35PtMYxMWqgS855eZnHECkxOLvaFsgwb51OnHEVsdcG_aOTbgZVn3pAddNgrIbiLAunXbAikYTrxY4PWAoY7GltxSJ25ICYbzZNA6tHJy8OxEWYxuuf06BoCGSdQhpfXab1roBYXcAogMhU-7SQmxz8cCfzEKTsODuLTzICMGWF5bsAAgLSA_q8XV6tmw",
devRefreshToken : "eyJhbGciOiJSUzUxMiIsImtpZCI6IjZyMUF2MS1zNEN1SnhlUzlIRkRwUVN0V1VPSVY5U3Fiai1OWW0zSm81OEEifQ.eyJpYXQiOjE3MTg3ODQzNzksIm5iZiI6MTcxODc4NDM3OSwiZXhwIjoxNzE4OTU3MTc5LCJpc3MiOiJhcGktcHVibGljLnNhbWVsZW1lbnQuY29tIiwiYXVkIjoiZGV2aWNlIiwic3ViIjoiYXBpLXB1YmxpYyIsInJlZiI6MSwiYXBpIjoiZTBGYUUwRlFFWm5LZ21jUXFLVzEzT2kweE5XcE9kbUoiLCJkZXYiOjF9.R37zj-2Th05PB0eIasFb0oLjsUQKFTLvr9Rmnih4yGXOi06tUyZxwLptCYT5oyRltv53okasmmk8fNc0LHnnZ_bMj-nE2uAd4_PBw7xBx0cl6J_h5qwSBsYvc-nhGAmvNPDt2NBQu10Mu51Tet6bW-LMF_hAw6SY0NVSLI70uiNWAeKf0Z0jKdo2w2cvuo2WDs9pmuPSwJBA04nxXkkd4VFW9qD4acDekTwYPD5r-cyZ3c9H9S3T5u4alrHyNkpHReKR9890JnsOYVIuUzOuz_MrgJPkWHO3a2ooiRuzXVC8fzLQgXBx0HLFSMxWy3dO4nalx9mU_eEFxUNFRfysfqWnLtiblsMhWNzzG2uDkuacKqNPhGM2IkU1hjIb8sBUuhCFjvK-8T0S8z-Dd7LMNb02Ry3UNZlKcSk8yTbA6lP6jVoncWj5MJcs95Ohel6RJ0Lxdqbe0m555qkMxc-_0QAP9W2pVulTeMIhbfmiX_0cMjUal0OnbGvtc6eO_gRy3knOx8QNKnkVbjlhF9OQekk1yy8sPUZ-lsCwzIl42NcqVCRGw1r-BSiRJrplZSsjZ3JPFex79uR9acXly9nin7fFbuhC2W2COdQxZYA-mAMbKhz5etQ-s5h-S5cyHb7GBasubk586mc1uh4LE1_6tuI7Fh_f2zuNU7w3Z7KxZfI",
mqttClientIdentifier : "6-USER-hanif@samelement.com-iniadalahidekuuntuk",
brokerAddress : "mqtt.iot.samelement.com",
brokerProtocol : "ssl",
brokerPort : 8883,
authServer : "https://auth.iot.samelement.com",
apiServer : "https://api.iot.samelement.com",
rootCA : '''-----BEGIN CERTIFICATE-----
MIID6zCCAtOgAwIBAgIJAJviMizPUy7fMA0GCSqGSIb3DQEBCwUAMIGRMQswCQYD
VQQGEwJJRDETMBEGA1UECAwKSmF3YSBUaW11cjERMA8GA1UEBwwIU3VyYWJheWEx
FDASBgNVBAoMC1NBTSBFbGVtZW50MRwwGgYDVQQDDBNTQU0gRWxlbWVudCBSb290
IENBMSYwJAYJKoZIhvcNAQkBFhduby1yZXBseUBzYW1lbGVtZW50LmNvbTAgFw0y
MzAxMzEyMzIwMTNaGA8yMDczMDExODIzMjAxM1owgZExCzAJBgNVBAYTAklEMRMw
EQYDVQQIDApKYXdhIFRpbXVyMREwDwYDVQQHDAhTdXJhYmF5YTEUMBIGA1UECgwL
U0FNIEVsZW1lbnQxHDAaBgNVBAMME1NBTSBFbGVtZW50IFJvb3QgQ0ExJjAkBgkq
hkiG9w0BCQEWF25vLXJlcGx5QHNhbWVsZW1lbnQuY29tMIIBIjANBgkqhkiG9w0B
AQEFAAOCAQ8AMIIBCgKCAQEAvzMan2NMNcxFUSpNqb7udYXGb13aS1lXcreU1kD/
xlcliNkujD1NAag7y3J2ZZAfTxtVyJ+wlzJQ6+z/lGT76I/eTafIyBFm02Yoe2Zz
I0n8ihbOI57vkd+VUXjwsjPNwnZXBCZ7dRh0WjNDDpzuXP7diaAg24gV1OC2u+tq
YnpgQ69vOEtW/yxIcvWx4/3kL94g+OcU8mK7YDO3yrHjuxvX9UNbxvoebdm6yFHj
+uIStSnmMmjxmy5ahqErYRaAhffekIqL2YqLG0BImLwyrMUw0gbYmorOaFwsJrqK
XbY+SUK7U5zpAvqWszrvSFkkA6L2alNYKcD1R1StxWXJYwIDAQABo0IwQDAOBgNV
HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPsjGiX5sr1Od
QQP3C4RMpKRoYbswDQYJKoZIhvcNAQELBQADggEBAJz0WWYilOc2KAFgnhPctIuL
buJDrhmElwJJz1NhsG1qoXiLEtQ1ZdImUyNKjRwOYPGEDPStauqRHBzourOKcZkP
tPwUggb9eg1E8QkMkUOah39dqQD4C9Wt/6IAtP7TQFdFmVVPMi9qmrd4AqfV0VC5
FL8uRitY8UZkl5W+Glgh1mNed6WYB22imrGT+ScARKzq/uPduSFer21rv1wV18rB
LtmrNBsgShastgedESpqXLasEgOYLQNAH5VT0GgiWqGUvvBAInxhFcw+pCgokmqH
VVTAyOMB8bId/b+rqb6y+5EnXoSowvNW+UVZY5deacPMxMV84QerktXoyKiws0k=
-----END CERTIFICATE-----
'''
);
}),
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();
}
),
])),
),
),
);
}
}