3

我已经尝试了所有我知道和能找到的东西,但我仍然无法让我的警报对话框显示为 TYPE_SYSTEM_ALERT。当我打开它时它会显示在我的应用程序上,但如果我的应用程序不在前面,它不会弹出。

我有:

final AlertDialog.Builder d = new AlertDialog.Builder(this);
d.setTitle("App name");
d.setMessage("Message");
d.setPositiveButton("OK", null);
d.setIcon(R.drawable.ic_launcher);

AlertDialog dialog = d.create();
dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
d.show();

然后我有清单:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

我错过了什么??

此警报之前的功能流程如下:

  1. 广播接收器侦听传入的短信。
  2. 收到后,它使用“RunOnUIThread”将消息传递给 MainActivity 中的一个函数。
  3. 解析消息并显示警报对话框。现在为什么 TYPE_SYSTEM_ALERT 不起作用?我可以从 logcat 中看到该消息已解析成功,但仍然警报对话框未显示为系统警报。任何人?
4

1 回答 1

0

所需权限仅适用于系统应用程序:

<permission android:name="android.permission.SYSTEM_ALERT_WINDOW" 
   android:protectionLevel=
   "signature|preinstalled|appop|pre23|development"/>
于 2016-11-18T12:05:01.147 回答