zoukankan      html  css  js  c++  java
  • debug debug Unable to add window android.view.View--permission denied for this window type

     1 AlertDialog builder=new AlertDialog.Builder(context).setTitle("注意:")
     2                 .setIcon(R.drawable.dailog_icon)
     3                 .setMessage("MS0"+ReceiveNumber+"请求建立语音连接,是否同意?")
     4                 .setPositiveButton("同意", new DialogInterface.OnClickListener() {
     5                     
     6                     @Override
     7                     public void onClick(DialogInterface arg0, int arg1) {
     8                         // TODO Auto-generated method stub
     9                         /*发送语音连接请求,同意接收*/
    10                         System.out.println("进入语音连接请求中……………………");
    11                         new Thread(new DataSend(CreateSignal.LinkReply(businessType))).start();/*发送连接请求同意信令,businessType业务类型*/
    12                         new Thread(new DataSend(CreateSignal.AudioReceive())).start();/*发送音频接收操作命令*/
    13                         Intent audioIntent=new Intent(context,PhoneInterface.class);
    14                         audioIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    15                         context.startActivity(audioIntent);
    16                     }
    17                 })
    18                 .setNegativeButton("取消", new DialogInterface.OnClickListener() {
    19                     
    20                     @Override
    21                     public void onClick(DialogInterface arg0, int arg1) {
    22                         // TODO Auto-generated method stub
    23                         
    24                     }
    25                 }).create();
    26         builder.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
    27         builder.show();
    View Code

    在调试代码中,报错误如下:

     1 04-05 15:17:15.279: E/AndroidRuntime(1575): FATAL EXCEPTION: main
     2 04-05 15:17:15.279: E/AndroidRuntime(1575): android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@4103e4c0 -- permission denied for this window type
     3 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewRootImpl.setView(ViewRootImpl.java:537)
     4 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301)
     5 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
     6 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
     7 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.Window$LocalWindowManager.addView(Window.java:537)
     8 04-05 15:17:15.279: E/AndroidRuntime(1575):     at com.compal.android.framework.elastic.Elasticview$PrimeviewTouchListener.onTouch(Elasticview.java:96)
     9 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.View.dispatchTouchEvent(View.java:5536)
    10 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1951)
    11 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1712)
    12 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
    13 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
    14 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
    15 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
    16 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
    17 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
    18 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
    19 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
    20 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
    21 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1684)
    22 04-05 15:17:15.279: E/AndroidRuntime(1575):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1912)
    23 04-05 15:17:15.279: E/AndroidRuntime(1575):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1371)
    24 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.app.Activity.dispatchTouchEvent(Activity.java:2364)
    25 04-05 15:17:15.279: E/AndroidRuntime(1575):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1860)
    26 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.View.dispatchPointerEvent(View.java:5721)
    27 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2890)
    28 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2466)
    29 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewRootImpl.processInputEvents(ViewRootImpl.java:845)
    30 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2475)
    31 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.os.Handler.dispatchMessage(Handler.java:99)
    32 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.os.Looper.loop(Looper.java:137)
    33 04-05 15:17:15.279: E/AndroidRuntime(1575):     at android.app.ActivityThread.main(ActivityThread.java:4424)
    34 04-05 15:17:15.279: E/AndroidRuntime(1575):     at java.lang.reflect.Method.invokeNative(Native Method)
    35 04-05 15:17:15.279: E/AndroidRuntime(1575):     at java.lang.reflect.Method.invoke(Method.java:511)
    36 04-05 15:17:15.279: E/AndroidRuntime(1575):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
    37 04-05 15:17:15.279: E/AndroidRuntime(1575):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
    38 04-05 15:17:15.279: E/AndroidRuntime(1575):     at dalvik.system.NativeStart.main(Native Method)
    View Code

    在报错中提示:
    Unable to add window android.view.ViewRootImpl$W@4103e4c0 -- permission denied for this window type

    原因是:

    发现在使用WindowManager.LayoutParams.TYPE_SYSTEM_ALERT涉及到window type权限问题。

    修改代码如下:

    在Mainfest.xml中添加window 权限:

     <!-- 显示系统窗口权限 -->
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
        <!-- 在 屏幕最顶部显示addview-->
     <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />

  • 相关阅读:
    图床
    MarkDown认识与入门
    IIS Express
    HTML中的英文缩写标记、属性
    AI-->从新建文档开始说起,串联相关色彩知识
    微软相关软件、操作系统常用下载方法(附离线方式)
    SubLime3 Emmet插件终极教程
    sublime text 3 扩展插件SideBarEnhancements用法教程
    几款前端开发工具比较
    关于VUE项目中报Error: Avoided redundant navigation to current location: 的错
  • 原文地址:https://www.cnblogs.com/chuji1988/p/3813335.html
Copyright © 2011-2022 走看看