簡體   English   中英

Android 上的 Flutter VoIP 推送通知

[英]Flutter VoIP Push notification on Android

我正在嘗試為視頻應用實現某種推送通知。

在 Flutter 端,我收到 FCM 推送通知,當發生這種情況時,會調用一個函數來處理來自本機端的代碼。

onMessage: (Map<String, dynamic> message) async {
        print('on resume $message');

        await callFromAndroid();

正在調用的 Future 函數是這樣的:

Future<void> callFromAndroid() async
  {
    try {
      await platform.invokeMethod('callFromAndroid');
    } catch (e) {
      print(e);
    }
  }

在 Android 方面,這是 MainActivity 應該觸發 VideoActivity 處理程序...

public class MainActivity extends FlutterActivity {
    private static final String CHANNEL = "my.test";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        GeneratedPluginRegistrant.registerWith(this);

        new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler(new MethodChannel.MethodCallHandler() {
            @Override
            public void onMethodCall(MethodCall methodCall, MethodChannel.Result result) {

                if (methodCall.method.equals("callFromAndroid")) {

                    videoActivityHandler();
                }

            }
        });
    }

    public void videoActivityHandler() {
        Intent intent = new Intent(this, VideoCallActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        getApplicationContext().startActivity(intent);

        Window window = getWindow();
        window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
                | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);


// to release screen lock
        KeyguardManager keyguardManager = (KeyguardManager) getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
        KeyguardManager.KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("TAG");
        keyguardLock.disableKeyguard();
    }
}

但是,當 FCM 通知到達時,它會出現空活動。 當應用程序在后台或手機被鎖定時,它也不起作用。

我完全是移動應用程序開發的初學者,沒有 Android Native 開發經驗。 我在研究這個主題時發現的所有這些代碼......

因此,任何幫助表示贊賞。

我來晚了,但是...

如果您想在應用程序處於后台/終止或什至在前台時接收 FCM 推送,您應該發送沒有notification負載的data負載。 在這種情況下,您可以在 FCM 的onBackgroundMessage回調中處理通知。

可能有人會發現它很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM