Я пробовал много способов с flutter_local_notifications, но не смог найти решение для запуска этих уведомлений на реальном устройстве.
Он отлично работает для отправки простых и периодических уведомлений, но с помощью APK-файла сборки. я не могу получать уведомления, ни простые, ни периодические.
Протестировано на двух разных устройствах Android: Android 9 и Android 14.
app/build.gradle< /p>
buildscript {
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.3.1'
}
}
rootProject.allprojects {
repositories {
google()
mavenCentral()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
delete rootProject.buildDir
}
app/src/build.gradle
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
localPropertiesFile.withReader('UTF-8') { reader ->
localProperties.load(reader)
}
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
}
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
namespace "com.example.example"
compileSdk 34
ndkVersion "27.0.12077973"
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = '1.8'
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
applicationId "com.example.example"
multiDexEnabled true
minSdkVersion 21
compileSdkVersion 34
targetSdkVersion 34
versionCode 1
versionName "1.0.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
lintOptions {
disable 'InvalidPackage'
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
flutter {
source '../..'
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
implementation "androidx.core:core:1.3.0"
implementation "androidx.media:media:1.1.0"
implementation "com.google.code.gson:gson:2.8.9"
implementation "androidx.window:window:1.2.0"
testImplementation 'junit:junit:4.12'
testImplementation 'org.mockito:mockito-core:3.10.0'
testImplementation 'androidx.test:core:1.2.0'
testImplementation "org.robolectric:robolectric:4.7.3"
}
Манифест Android
android:value="To demonstrate how to use foreground services to show notifications" />
Код уведомлений
class LocalNotification {
static final FlutterLocalNotificationsPlugin
_flutterLocalNotificationsPlugin =
FlutterLocalNotificationsPlugin();
// inititalize
static Future init() async {
const AndroidInitializationSettings
initializationSettingsAndroid =
AndroidInitializationSettings('coordinate');
final DarwinInitializationSettings
initializationSettingsDarwin =
DarwinInitializationSettings(
onDidReceiveLocalNotification: (id, title, body, payload)
=> null,
);
final LinuxInitializationSettings initializationSettingsLinux =
LinuxInitializationSettings(defaultActionName: 'Open notification');
final InitializationSettings initializationSettings =
InitializationSettings(
android: initializationSettingsAndroid,
iOS: initializationSettingsDarwin,
linux: initializationSettingsLinux);
_flutterLocalNotificationsPlugin.initialize(
initializationSettings,
onDidReceiveNotificationResponse: (details) => null,
);
await Permission.notification.request();
}
// Simple Notification
static Future showSimpleNotification({
required String title,
required String body,
required String payload,
}) async {
const AndroidNotificationDetails androidNotificationDetails =
AndroidNotificationDetails(
'channel 1',
'simple',
channelDescription: 'simple_notify',
importance: Importance.max,
priority: Priority.high,
ticker: 'ticker',
largeIcon: DrawableResourceAndroidBitmap('enthusia'),
);
const NotificationDetails notificationDetails =
NotificationDetails(android: androidNotificationDetails);
await _flutterLocalNotificationsPlugin
.show(0, title, body, notificationDetails, payload: payload);
}
// Periodic Notifications
static Future showPeriodicNotifications({
required String title,
required String body,
required String payload,
}) async {
const AndroidNotificationDetails androidNotificationDetails =
AndroidNotificationDetails('channel 2', 'periodic',
channelDescription: 'periodic_notify',
importance: Importance.max,
priority: Priority.high,
ticker: 'ticker');
const NotificationDetails notificationDetails =
NotificationDetails(android: androidNotificationDetails);
await _flutterLocalNotificationsPlugin.periodicallyShow(
1, title, body, RepeatInterval.everyMinute, notificationDetails,
androidScheduleMode: AndroidScheduleMode.exactAllowWhileIdle,
payload: payload);
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... eal-device
Локальные уведомления Flutter работают на эмуляторе, а не на реальном устройстве ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Flutter Google Map Не отображается на эмуляторе, а работает на реальном устройстве
Anonymous » » в форуме Android - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Flutter Google Map Не отображается на эмуляторе, а работает на реальном устройстве
Anonymous » » в форуме Android - 0 Ответы
- 4 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Локальные уведомления, не поступающие в ios, реагируют на встроенные push-уведомления
Anonymous » » в форуме IOS - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Flutter IOS сборка сбоя на реальном устройстве: «Flutter/Flutter.h». Файл не найден
Anonymous » » в форуме IOS - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-