1

My app's service starts activity in LockScreen(android:showOnLockScreen="true" option in Manifests.xml).

The LockScreen activity sets onTouch listener.

In onTouch, it calls finish() to close activity

This finish() function incurs warning message 'requires android.permission.INTERACT_ACROSS_USERS'

How to solve it?

Following is Manifests.xml

<service android:name=".LockScreenService" />
<activity android:name=".LockScreenActivity"
    android:showOnLockScreen="true"
    android:launchMode="singleInstance"
    android:theme="@style/AppThemeNoAction">
</activity>

Following is Lockscreen activity onTouch Source

@Override
public boolean onTouch(View v, MotionEvent event) {
    finish()
}

Following is warning log

W/System.err: java.lang.SecurityException: Permission Denial: getCurrentUser() from pid=20053, uid=10216 requires android.permission.INTERACT_ACROSS_USERS
W/System.err:     at android.os.Parcel.readException(Parcel.java:1958)
W/System.err:     at android.os.Parcel.readException(Parcel.java:1904)
W/System.err:     at android.sec.clipboard.IClipboardService$Stub$Proxy.isEnabled(IClipboardService.java:757)
W/System.err:     at com.example.android.content.clipboard.SemClipboardManager.isEnabled(SemClipboardManager.java:1008)
W/System.err:     at android.widget.TextView.getSecClipboardEnabled(TextView.java:16133)
W/System.err:     at android.widget.TextView.onDetachedFromWindowInternal(TextView.java:7178)
W/System.err:     at android.view.View.dispatchDetachedFromWindow(View.java:18645)
W/System.err:     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3878)
I/chatty: uid=10216(u0_a216) com.example.lockscreen identical 4 lines
W/System.err:     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3878)
W/System.err:     at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:4001)
W/System.err:     at android.view.ViewRootImpl.doDie(ViewRootImpl.java:7267)
W/System.err:     at android.view.ViewRootImpl.die(ViewRootImpl.java:7244)
W/System.err:     at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:483)
W/System.err:     at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:421)
W/System.err:     at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:131)
W/System.err:     at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4643)
W/System.err:     at android.app.ActivityThread.-wrap5(Unknown Source:0)
W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1757)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:105)
W/System.err:     at android.os.Looper.loop(Looper.java:164)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6938)

06-19 10:30:50.615 20053-20053/com.example.lockscreen W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
W/System.err: java.lang.SecurityException: Permission Denial: getCurrentUser() from pid=20053, uid=10216 requires android.permission.INTERACT_ACROSS_USERS
W/System.err:     at android.os.Parcel.readException(Parcel.java:1958)
W/System.err:     at android.os.Parcel.readException(Parcel.java:1904)
W/System.err:     at android.sec.clipboard.IClipboardService$Stub$Proxy.isEnabled(IClipboardService.java:757)
W/System.err:     at com.example.android.content.clipboard.SemClipboardManager.isEnabled(SemClipboardManager.java:1008)
W/System.err:     at android.widget.TextView.getSecClipboardEnabled(TextView.java:16133)
W/System.err:     at android.widget.TextView.onDetachedFromWindowInternal(TextView.java:7178)
W/System.err:     at android.view.View.dispatchDetachedFromWindow(View.java:18645)
W/System.err:     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3878)
I/chatty: uid=10216(u0_a216) com.example.lockscreen identical 4 lines
W/System.err:     at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3878)
W/System.err:     at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:4001)
W/System.err:     at android.view.ViewRootImpl.doDie(ViewRootImpl.java:7267)
W/System.err:     at android.view.ViewRootImpl.die(ViewRootImpl.java:7244)
W/System.err:     at android.view.WindowManagerGlobal.removeViewLocked(WindowManagerGlobal.java:483)
W/System.err:     at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:421)
W/System.err:     at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:131)
W/System.err:     at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4643)
W/System.err:     at android.app.ActivityThread.-wrap5(Unknown Source:0)
W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1757)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:105)
W/System.err:     at android.os.Looper.loop(Looper.java:164)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6938)

06-19 10:30:50.617 20053-20053/com.example.lockscreen W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
D/ViewRootImpl@bee7239[LockScreenActivity]: dispatchDetachedFromWindow
D/InputEventReceiver: channel '7c33270 com.example.lockscreen/com.example.lockscreen.LockScreenActivity (client)' ~ Disposing input event receiver.
D/InputEventReceiver: channel '7c33270 com.example.lockscreen/com.example.lockscreen.LockScreenActivity (client)' ~NativeInputEventReceiver.
SJ.Je
  • 51
  • 1
  • 7

1 Answers1

0

Higher than target API 23 versions, the application gets permission with popup-window. Did you get a permission with popup-window?

EDIT: You can use checkSelfPermission() and requestPermissions() to check permission or get permission.

SunSpike
  • 127
  • 1
  • 1
  • 12
  • According to [What do I do about: this requires android.permission.INTERACT_ACROSS_USERS_FULL](https://stackoverflow.com/questions/19756727/what-do-i-do-about-this-requires-android-permission-interact-across-users-full), I can't request a signature level permission because I'm not using rooted device. I wonder why this warning occurs – SJ.Je Jun 19 '18 at 03:57
  • @SJ.Je Then See this answer. https://stackoverflow.com/questions/28134128/android-permission-interact-across-users-full/45057190#45057190 at second answer will be help for you. – SunSpike Jun 19 '18 at 04:44