我试图让用户在触摸自己的设备时绘制所有触摸点。 (这意味着甚至在应用程序之外。)
首先,我在设备上添加了一个视图叠加层。但是,如果我取出屏幕顶部的触摸点,它似乎会阻挡整个屏幕,我无法让触摸通过视图触摸视图下的其他单元。
第二,我写了系统的“show_touches”设置,然后我可以看到所有的接触点。
第二种方式工作正常,直到android 6.0发布。高于6.0,我需要在应用程序中再次请求权限。但是当获得许可时,我仍然会崩溃“你无法改变私人安全设置”。
有没有办法获得安全设置权限?或者在屏幕顶部绘制触摸点的另一种方法是什么?
我需要一个没有根源的答案,任何人都可以帮我解决这个问题吗?
这是我的堆栈跟踪:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.morshues.mytestapp, PID: 31194
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=45487, result=-1, data=Intent { (has extras) }} to activity {com.morshues.mytestapp/com.morshues.mytestapp.SecondActivity}: java.lang.IllegalArgumentException: You cannot change private secure settings.
at android.app.ActivityThread.deliverResults(ActivityThread.java:3988)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4038)
at android.app.ActivityThread.access$1400(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1443)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:168)
at android.app.ActivityThread.main(ActivityThread.java:5845)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
Caused by: java.lang.IllegalArgumentException: You cannot change private secure settings.
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:165)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.call(ContentProviderNative.java:646)
at android.provider.Settings$NameValueCache.putStringForUser(Settings.java:1400)
at android.provider.Settings$System.putStringForUser(Settings.java:1769)
at android.provider.Settings$System.putIntForUser(Settings.java:1874)
at android.provider.Settings$System.putInt(Settings.java:1868)
at com.morshues.FullRecorder.start(FullRecorder.java:238)
at com.morshues.FullRecorder.onActivityResult(FullRecorder.java:132)
at com.morshues.mytestapp.onActivityResult(MainCenter.java:130)
at com.morshues.mytestapp.SecondActivity.onActivityResult(SecondActivity.java:91)
at android.app.Activity.dispatchActivityResult(Activity.java:6439)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3984)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4038)
at android.app.ActivityThread.access$1400(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1443)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:168)
at android.app.ActivityThread.main(ActivityThread.java:5845)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)