A intercom library that includes functions such as logging in, logging out, entering groups, exiting groups, making temporary calls, monitoring groups, canceling monitoring groups, sending and receiving messages, etc
Android
Add the following rules to your proguard-rules.pro file:
-keep class com.corget.** { *; }
-dontwarn java.awt.**
Create object
FlutterSmartPtt _flutterSmartPttPlugin = FlutterSmartPtt();
Set language
_flutterSmartPttPlugin.setLanguage("en");
Supported parameters:en、es、fa、fr、it、ja、ko、pt、ru、tr、uk、zh
Monitor data updates for intercom
PocChangeNotifier pocChangeNotifier = _flutterSmartPttPlugin.getPocChangeNotifier();
pocChangeNotifier.addListener(() {
...
pocChangeNotifier.xxx
...
});
| Field Definition | Comment |
|---|---|
int id |
id |
String account |
Account |
String password |
Password |
String name |
Name |
int status |
Status |
int privilege |
Privilege |
List<dynamic> groups |
List of all groups |
Map groupsMap |
Map of all groups |
Map usersMap |
All users (if a user is in multiple groups, the user object from the last group will be saved) |
int activeGroupId |
Current group ID, 0 indicates not in any group |
bool isRecording |
Whether recording is in progress |
bool isPlaying |
Whether playing is in progress |
String speakingName |
Name of the current speaker |
List<int> speakingIdList |
List of IDs of the current speakers |
bool hideTalker |
Hide the speaker |
int offlineCode |
Offline code, -1: normal exit |
bool isOnline |
Whether online |
String activeGroupName |
Name of the current group |
dynamic showGroup |
Group showing the current members |
int showGroupId |
ID of the group showing the current members |
List<int> monitoredGroupIds |
List of monitored group IDs |
int gpsInterval |
GPS interval |
String location |
Location |
Monitor data updates for settings
SettingChangeNotifier settingChangeNotifier = _flutterSmartPttPlugin.getSettingChangeNotifier();
settingChangeNotifier.addListener(() {
...
settingChangeNotifier.xxx
...
});
| Field Definition | Comment |
|---|---|
bool enable8KCoding |
Enable 8K coding |
bool enablePTT |
Enable PTT |
bool enableToast |
Whether to enable toast notifications |
bool enableVoiceBroadCast |
Whether to enable voice broadcast |
bool enableBeep |
Whether to enable beep sounds |
bool enableLog |
Whether to enable logging |
Set server address
_flutterSmartPttPlugin.setUrl(url);
Server Address List: https://corget.com/flutter/url.txt
Login
_flutterSmartPttPlugin.login(account, password);
Logout
_flutterSmartPttPlugin.logout();
Start speaking
_flutterSmartPttPlugin.startPTT();
End speaking
_flutterSmartPttPlugin.endPTT();
Enter a group based on the group ID
_flutterSmartPttPlugin.enterGroup(groupId);
Enter the previous group
_flutterSmartPttPlugin.enterPreGroup();
Enter the next group
_flutterSmartPttPlugin.enterNextGroup();
Exit the current group
_flutterSmartPttPlugin.leaveGroup();
Monitor a group based on its ID
_flutterSmartPttPlugin.addMonitorGroup(groupId);
Cancel monitor a group based on its ID
_flutterSmartPttPlugin.removeMonitorGroup(groupId);
Send an SOS alert message to the current group. If not currently in the group, send it to the first group
_flutterSmartPttPlugin.sos();
Temporary call to one or more users
_flutterSmartPttPlugin.inviteTmpGroup(userIdList);
Pull one or more users into the current group
_flutterSmartPttPlugin.pullUsersToGroup(userIdList);
Remove one or more users from the current group
_flutterSmartPttPlugin.disJoinUser(userIdList);
Remove one or more users from the current group
_flutterSmartPttPlugin.pullUsersToGroup(userIdList);
Make one or more users unable to log in
_flutterSmartPttPlugin.forceUserExit(userIdList);
Send a message to a group based on the group ID
_flutterSmartPttPlugin.sendGroupMsg(...);
Send a message to a user based on their ID
_flutterSmartPttPlugin.sendUserMsg(...);
Modify Setting
_flutterSmartPttPlugin.enablePTT(true);
_flutterSmartPttPlugin.enablePTT(false);
_flutterSmartPttPlugin.enable8KCoding(false);
_flutterSmartPttPlugin.enable8KCoding(true);
_flutterSmartPttPlugin.enableToast(true);
_flutterSmartPttPlugin.enableToast(false);
_flutterSmartPttPlugin.enableVoiceBroadCast(true);
_flutterSmartPttPlugin.enableVoiceBroadCast(false);
_flutterSmartPttPlugin.enableBeep(true);
_flutterSmartPttPlugin.enableBeep(false);
_flutterSmartPttPlugin.enableLog(true);
_flutterSmartPttPlugin.enableLog(false);
Set callback method
_flutterSmartPttPlugin.setMethodCallback(handleMethodCall);
You can handle callback methods according to your needs
For example, when you receive a text message sent by someone else, you will receive a callback method named "NotifyMsg"
Customize translation content
Key value pairs for translation:https://corget.com/flutter/intl_en.arb.txt If you want to overwrite the translation,Return custom translation content to the specified translation key, such as:
dynamic handleMethodCall (MethodCall methodCall) {
String method = methodCall.method;
dynamic arguments = methodCall.arguments;
switch (method) {
case "GetTranslation":
String key=methodCall.arguments;
if(key=="Speaking"){
return "is currently speaking,release to end.";
}
break;
}
}
TTS
Implement TTS playback yourself: Listen to the PlayText method, play the text, and return true
dynamic handleMethodCall (MethodCall methodCall) {
switch (method) {
case "PlayText":
//text:Text to play
String text=methodCall.arguments[0];
//interrupt:Whether to interrupt the previous playback
bool interrupt=methodCall.arguments[1];
logger.i("method callback:PlayText:text: $text");
logger.i("method callback:PlayText:interrupt: $interrupt");
return true;
}
}
Location
####*IOS On iOS you'll need to add the following entry to your Info.plist file (located under ios/Runner) in order to access the device's location. Simply open your Info.plist file and add the following (make sure you update the description so it is meaningful in the context of your App):
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location when open.</string>
More details here:https://pub.dev/packages/geolocator
Libraries
- common/common
- common/constant
- common/global
- controller/smart_ptt_widget_controller
- flutter_smart_ptt
- flutter_smart_ptt_platform_interface
- generated/intl/messages_all
- generated/intl/messages_en
- generated/intl/messages_es
- generated/intl/messages_fa
- generated/intl/messages_fr
- generated/intl/messages_it
- generated/intl/messages_ja
- generated/intl/messages_ko
- generated/intl/messages_pt
- generated/intl/messages_ru
- generated/intl/messages_tr
- generated/intl/messages_uk
- generated/intl/messages_zh
- generated/intl/messages_zh_TW
- generated/l10n
- handler/audio_play_handler
- handler/audio_record_handler
- handler/flutter_tts_handler
- handler/http_handler
- handler/i10n_handler
- handler/init_handler
- handler/location_handler
- handler/permission_handler
- handler/platform_method_invoke_handler
- handler/poc_handler
- handler/record_handler
- method_channel_flutter_smart_ptt
- model/http_result
- model/play_item
- notifier/poc_change_notifier
- notifier/setting_change_notifier
- utils/file_util
- utils/log
- utils/toast_utils
- widget/smart_ptt_widget