我希望在我的代码的任何应用中的特定时间弹出对话框:
public class testPOPDialog extends Activity {
/** Called when the activity is first created. */
private Handler mHandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mHandler.postDelayed(mUpdateTimeTask, 1000);
}
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
AlertDialog d = new AlertDialog.Builder(testPOPDialog.this)
.setTitle("tanchulai")
.setMessage("bucuo de tanchulai")
.create();
d.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
d.show();
}
};
}
它给了我
12-03 10:12:18.162: ERROR/AndroidRuntime(571): android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRoot$W@43dd71c0 -- permission denied for this window type
这是什么权限
如果我删除d.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
我的应用是正确的.....
答案 0 :(得分:14)
将此权限添加到您的清单:
android.permission.SYSTEM_ALERT_WINDOW
答案 1 :(得分:1)
首先感谢Mathias Lin
我是Android新手,所以我很难从Mathias Lin
的答案中设置权限。
因为我不知道如何设置权限以及清单文件中的位置。
最后,我借助Mathias Lin
的答案做到了。所以我详细说明了答案。
在mainfest文件中使用
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
之后
<uses-sdk
android:minSdkVersion=...
android:targetSdkVersion=... />
作为
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="16" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
答案 2 :(得分:0)
在包含要显示为弹出窗口的活动的清单文件中尝试此操作.--&gt;&gt;机器人:主题= “@机器人:风格/ Theme.Dialog”