Android AlertDialog:TYPE_SYSTEM_ALERT

时间:2015-04-23 04:11:44

标签: android alertdialog system-alert-window

我已经尝试了我知道并且可以找到的所有内容,但仍然无法将我的警报对话框显示为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. 收到消息后,会使用&#34; RunOnUIThread&#34;将消息传递给MainActivity中的函数。
  3. 解析消息并显示警告对话框。既然为什么TYPE_SYSTEM_ALERT不工作?我可以从logcat看到消息被解析好但仍然警告对话框没有显示为系统警报。任何人吗?

1 个答案:

答案 0 :(得分:0)

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

<permission android:name="android.permission.SYSTEM_ALERT_WINDOW" 
   android:protectionLevel=
   "signature|preinstalled|appop|pre23|development"/>