問題タブ [flutter-method-channel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Flutter Method Channel をバックグラウンドで使用する方法 (アプリを最小化 / 閉じた状態)
Flutter アプリでネイティブの Android ウィジェットに取り組んでいます。更新ボタンがあり、それをクリックすると、Flutter コードでメソッドを呼び出す必要があります。通信に Flutter Method Channel を使用していますが、アプリがフォアグラウンドの場合は正常に動作しています。ただし、アプリを最小化または閉じている場合は機能しません。エラーPlatformException(NO_ACTIVITY, null, null)が発生します。以下は私のコードです。
Android (AppWidgetProvider)
フラッター
flutter - フラッター メソッド チャネル エラー。{ 未処理の例外: MissingPluginException (チャネル バッテリのメソッド getBatteryLevel の実装が見つかりません) }
だから私は「https://flutter.dev/docs/development/platform-integration/platform-channels?tab=android-channel-java-tab」からすべてをフォローしましたが、デバイスのフローティングボタンをクリックすると、このエラーが表示されます.
Main.dart:-
MainActivity.java:-
私はフラッターに慣れていません。また、何が起こっているのか説明してもらえますか
コードのこの部分。ありがとうございました。
android - バックグラウンドで Android から Dart を呼び出す方法
アクティビティがバックグラウンドにあるとき、またはアクティビティがまったくないときに、Android から Dart コードを呼び出そうとしています。たとえば、alarmmanager がトリガーされたとき。
これは私のダーツコードです:
Java から:
channel
私のメインアクティビティから初期化される静的変数です。
これは、アクティビティがフォアグラウンドにあるときに機能します。しかし、バックグラウンドにあるときは、次の通知を受け取ります。FlutterView.send called on a detached view, channel=mychannel
呼び出しは実行されません。バックグラウンドで Android から Dart を呼び出すにはどうすればよいですか?
編集:
私のユースケースは純粋に Android のユースケースです。これは基本的に次の流れです。
- alarmmanager が起動し、ブロードキャスト イベントが受信されます。Dit はライブラリなしでネイティブに実行されます。これは主に、アプリがアクティブでないときに発生します。
- ブロードキャストレシーバーで、Firebase からいくつかのデータを読み取り、通知を設定します。
- Firebase からのデータに基づいて新しいアラームをスケジュールします。
flutter/dart 内では、Firebase からデータを取得するためのビジネス ロジックを既に取得しています。明らかに、私はそのすべてを再び書きたくありませんが、今は Java で書きます。
私は、alarmmanager プラグインとローカル通知プラグインを使用したくありません。どちらも異なる分離で実行され、問題が発生するためです。
android - プラットフォーム チャネルを使用して、ネイティブ Android からフラッターにデータを取得できませんか?
以下をコンソールに出力します
最初の行は、MainActivity.kt で println() を使用して印刷されます。2 行目は、フラッターで print() を使用して印刷されます。
Kotlin の songList.size と flutter の songList.length を使用して、リストの長さを取得しようとさえしました。Kotlin では 14 を示し、 flutter では 1464 を示しています。私が知っていることの1つは、result.success(songsList)を送信しても、フラッターがリスト全体を取得していないことです。ここにKotlinとフラッターのコードがあります
フラッター
android - Flutter Viewを使用してネイティブAndroidでスナックバーを作成するにはどうすればよいですか
問題
Flutter アプリでネイティブ Android コードを使用して Snackbar を作成しようとしています。ただし、ネイティブ Android でスナックバーを作成するには、ビューを取得する必要があります (ビューを必要とするスナックバーを作成するためのパラメーターのため)、私のネイティブ Android コードはアクティビティ レイアウトを拡張しないため (代わりにバックグラウンド サービスを使用します)、ビューを取得することはできません。 .
本質的に、ネイティブ Android コードで Snackbar を作成する (つまり、フラッター ビューを取得する) にはどうすればよいでしょうか?
言い換えれば、ネイティブ Android バックグラウンド サービスを介してフラッター アプリで Snackbar を作成するにはどうすればよいでしょうか?
私の解決策の試み:
を使用して getFlutterView() を使用できます
import io.flutter.app.FlutterActivity
ただし、プラグインはこのインポートでは生成されません。むしろ使ってる
import io.flutter.embedding.android.FlutterActivity;
Javaで生成されたプラグインを使用できる唯一の方法のようです(Kotlinでプログラミングしていないため)。このインポートには「getFlutterView()」機能がないようです。