java - 无法将 View 添加到 Android 中的服务

标签 java android android-service

请:在标记此问题之前先访问此问题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/

相关文章:

java - 如何在android状态栏上写

android - overridePendingTransition:在 Activity 中从右到左滑动深度

Android:(简单)缺少导入或...?

android - 未收到通知的 PendingIntent

android - 如何解决工作管理器上的多实例问题?

java - 在运行时加载自定义字体以与 JTextPane 一起使用

java - Redis SCAN 返回无效游标

java - 如何让消息在 onEnable 中等待?

android - Android 上的实时音频卷积

java - 无法在android中使用retrofit2发出@Post请求