小编tom*_*itz的帖子

API 26上的SYSTEM_ALERT_WINDOW PERMISSION无法按预期工作.窗口类型2002的权限被拒绝

我正在使用叠加权限在我的应用中显示某些信息.在API 23 - 25上运行它工作正常(请求许可,授予等等)

无法添加窗口android.view.ViewRoot$W@44da9bc0 - 此窗口类型的权限被拒绝 ).(非常感谢ceph3us!)

在API 26上尝试相同我收到一个错误,基本上"调用时窗口类型2002的权限被拒绝"

windowManager.addView(frameLayout, params);
Run Code Online (Sandbox Code Playgroud)

Google是否改变了方式,叠加效果如何?任何想法,如何将我的文本作为叠加到Android 8(奥利奥),API 26的屏幕上?谢谢你的想法!

这是错误日志:

08-24 16:41:56.730 2615-2615/net.zwittscha.testoverlay E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.zwittscha.testoverlay, PID: 2615
java.lang.RuntimeException: Unable to start activity ComponentInfo{net.zwittscha.testoverlay/net.zwittscha.testoverlay.MainActivity}: 
                android.view.WindowManager$BadTokenException: Unable to add window android.view.ViewRootImpl$W@6fa0089 -- 
                permission denied for window type 2002
 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
 at android.app.ActivityThread.-wrap11(Unknown Source:0)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
 at android.os.Handler.dispatchMessage(Handler.java:105)
 at android.os.Looper.loop(Looper.java:164)
 at android.app.ActivityThread.main(ActivityThread.java:6541)
 at java.lang.reflect.Method.invoke(Native Method)
 at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
            Caused by: android.view.WindowManager$BadTokenException: 
            Unable to add window android.view.ViewRootImpl$W@6fa0089 -- 
            permission denied for …
Run Code Online (Sandbox Code Playgroud)

permissions android android-8.0-oreo

23
推荐指数
3
解决办法
2万
查看次数

android N中的作业调度程序,间隔小于15分钟

我的问题的一部分,我如何在"Nougat"中以不到15分钟的间隔建立一个工作,在他的答案中被"暴雪"回答:
Job Scheduler没有在Android N上运行
他解释了问题并建议使用以下解决方法:

JobInfo jobInfo;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
  jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
      .setMinimumLatency(REFRESH_INTERVAL)
      .setExtras(bundle).build();
} else {
  jobInfo = new JobInfo.Builder(JOB_ID, serviceName)
      .setPeriodic(REFRESH_INTERVAL)
      .setExtras(bundle).build();
}    
Run Code Online (Sandbox Code Playgroud)

但是,使用建议

  .setMinimumLatency(REFRESH_INTERVAL)    
Run Code Online (Sandbox Code Playgroud)

刚开始工作一次;
但是如何在Android牛轧糖设备(不使用处理程序或报警管理器)上定期获得约30秒的周期?

android job-scheduling android-7.0-nougat

18
推荐指数
2
解决办法
1万
查看次数