请:在标记此问题之前先访问此问题link
我想将 ImageView 添加到服务中,以便它显示在其他 Activity 之上,但出现错误:详细信息如下
代码:androidMainfest.xml
<uses-permission android:name="ANDROID.PERMISSION.SYSTEM_ALERT_WINDOW"/>
<service android:name=".ToggleHeadService"/>
代码:ToggleHeadService.java
public class ToggleHeadService extends Service{
private WindowManager windowManager;
private ImageView toggleHead;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
toggleHead=new ImageView(this);
toggleHead.setImageResource(R.drawable.ic_brightness_high_black_48dp);
windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL,
PixelFormat.TRANSLUCENT);
params.gravity = Gravity.TOP | Gravity.LEFT;
params.x = 0;
params.y = 100;
windowManager.addView(toggleHead, params);
}
@Override
public void onDestroy() {
super.onDestroy();
if(toggleHead!=null)windowManager.removeView(toggleHead);
}
}
错误:我得到了
java.lang.RuntimeException: Unable to create service com.betatech.alex.toggle.ToggleHeadService: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@3cf2926d -- permission denied for this window type
Caused by: android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@3cf2926d -- permission denied for this window type
最佳答案
权限应该是:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
注意小写的“android.permission”。
关于java - 无法将 View 添加到 Android 中的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31400660/