相关疑难解决方法(0)

SYSTEM_ALERT_WINDOW - 如何在Android 6.0和targetSdkVersion 23上自动获得此权限

Facebook,Evernote,Pocket - 所有应用程序都会自动在Android 6.0上获得此权限,即使它们的目标是23(targetSdkVersion=23).

关于新的Marshmallow权限模型有很多文档.其中一个SYSTEM_ALERT_WINDOW被"提升"为"高于危险"的权限级别,因此需要特殊的用户干预才能授予应用程序这些权限.如果应用程序有targetSdkVersion22或更低,app会自动获得此权限(如果在清单中请求).

但是,我注意到一些获得此权限的应用程序,无需将用户发送到设置特殊页面的Draw over other apps权限.我看到Facebook,Evernote,Pocket - 也许还有更多.

任何人都知道在没有用户通过的情况下如何授予应用程序此权限Settings -> Apps -> Draw over other apps

谢谢

android android-permissions target-sdk system-alert-window android-6.0-marshmallow

73
推荐指数
4
解决办法
6万
查看次数

收到 FCM 推送通知时自动打开应用程序 (Flutter)

我正在尝试让应用程序在收到推送通知时自动打开,我正在使用 Firebase Cloud Messaging,我已经在这里阅读有关相同问题的信息,但我不太明白如何将其用于 flutter

dart flutter firebase-cloud-messaging

7
推荐指数
1
解决办法
968
查看次数

使用 Agora Flutter 传入视频/音频呼叫通知

我一直在开发一个应用程序,我需要在我的应用程序中实现音频和视频通话,这是我使用 Agora.io 完成的,但问题是我必须显示来电通知,无论应用程序是在前台还是在背景。我已经尝试了很多事情,但仍然无法配置它。我正在使用agora_rtc_engine包来拨打电话。

任何帮助,将不胜感激。

谢谢

我当前正在使用的代码:

调用方法

class CallMethods {
  final callRef = FirebaseFirestore.instance.collection('Calls');

  Stream<DocumentSnapshot> callstream({@required String id}) =>
      callRef.doc(id).snapshots();

  Future<bool> makeCall({@required Call call}) async {
    try {
      log('Making call');
      call.hasdialed = true;
      Map<String, dynamic> hasDialedMap = call.toMap(call);

      call.hasdialed = false;
      Map<String, dynamic> hasNotDialedMap = call.toMap(call);

      await callRef.doc(call.senderid).set(hasDialedMap);
      await callRef.doc(call.receiverid).set(hasNotDialedMap);

      return true;
    } catch (e) {
      print(e);
      return false;
    }
  }

  Future<bool> endCall({@required Call call}) async {
    try {
      log('ending call');
      await callRef.doc(call.senderid).delete();
      await callRef.doc(call.receiverid).delete();

      return true;
    } …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-dependencies agora.io

6
推荐指数
1
解决办法
2893
查看次数