2016-05-17 13 views
0

私はAndroidの画面上のヘッドウィジェットのようにFacebookを利用して作成しようとしています。パーミッションをALERT_SYSTEM_WINDOWと宣言しましたが、マニフェストのパーミッションは変わりましたが、それでもクラッシュすると、誰かが自分のコード内の問題を見つけるのを助けることができますか?

@Override 
    public void onCreate() { 
     super.onCreate(); 

     windowManager = (WindowManager) getSystemService(WINDOW_SERVICE); 

     chatHead = new ImageView(this); 
     chatHead.setImageResource(R.drawable.widget_logo); 

     params= new WindowManager.LayoutParams(
       WindowManager.LayoutParams.WRAP_CONTENT, 
       WindowManager.LayoutParams.WRAP_CONTENT, 
       WindowManager.LayoutParams.TYPE_PHONE, 
       WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
       PixelFormat.TRANSLUCENT); 

     params.gravity = Gravity.TOP | Gravity.LEFT; 
     params.x = 0; 
     params.y = 100; 

     //this code is for dragging the chat head 
     chatHead.setOnTouchListener(new View.OnTouchListener() { 
      private int initialX; 
      private int initialY; 
      private float initialTouchX; 
      private float initialTouchY; 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       switch (event.getAction()) { 
        case MotionEvent.ACTION_DOWN: 
         initialX = params.x; 
         initialY = params.y; 
         initialTouchX = event.getRawX(); 
         initialTouchY = event.getRawY(); 
         return true; 
        case MotionEvent.ACTION_UP: 
         return true; 
        case MotionEvent.ACTION_MOVE: 
         params.x = initialX 
           + (int) (event.getRawX() - initialTouchX); 
         params.y = initialY 
           + (int) (event.getRawY() - initialTouchY); 
         windowManager.updateViewLayout(chatHead, params); 
         return true; 
       } 
       return false; 
      } 
     }); 
      windowManager.addView(chatHead, params); 
    } 
+0

このウィンドウの種類については、表示権限が拒否されています:@ windowManager.addView(chatHead、params); –

+0

http://stackoverflow.com/questions/32224452/android-unable-to-add-window-permission-denied-for-this-window-typeは、このことができます願っています – prat

答えて

0

私はこれに対する答えを見つけました。 APIバージョン19を使用しているため、WindowManager.LayoutParams.TYPE_PHONE,の代わりにWindowManager.LayoutParams.TYPE_PHONE,を使用しました。

関連する問題