android.permission.READ_PHONE_STATE

216 megtekintés
Ugrás az első olvasatlan üzenetre

Carlos Verdier

olvasatlan,
2016. dec. 5. 12:33:482016. 12. 05.
– CodenameOne Discussions
Hi

After uploading my latest build to Google Play I get a warning about adding android.permission.READ_PHONE_STATE, which is something I didn't get just a few days ago. Has anything changed that is triggering this permission?

Thanks

Shai Almog

olvasatlan,
2016. dec. 6. 0:20:082016. 12. 06.
– CodenameOne Discussions
Hi,
is it possible you are sending a build to 3.5 and not the latest?
Are you trying to access device information such as UDID?

Carlos Verdier

olvasatlan,
2016. dec. 6. 5:21:292016. 12. 06.
– CodenameOne Discussions
No, I've made sure the version is set to latest, and I don't access to any device information. 
The closest would be display.getinstance().dial, but I don't think this is the cause and I've had that line for a long time anyway.

Did you commit any change this Friday that could be the reason for this?

Shai Almog

olvasatlan,
2016. dec. 6. 23:51:562016. 12. 06.
– CodenameOne Discussions
Not to my knowledge.
Try denying the permission and look at DDMS to see if there are applicable logs ideally a stack trace.

Carlos Verdier

olvasatlan,
2016. dec. 7. 5:51:192016. 12. 07.
– CodenameOne Discussions
I couldn't get anything from DDMS but I found out that ShareButton is the cause of this. If I remove it, then the warning in Google's Developer Console disappears. I don't remember having this problem before. And I say "problem" because this permission forces me to add a privacy policy and I fear that this could make my app suspicious for some users...

Carlos Verdier

olvasatlan,
2016. dec. 7. 7:29:152016. 12. 07.
– CodenameOne Discussions
Ok, everything is clear now. The permission has always been there, it's just Google being louder about this in the Developer Console. I didn't see that warning before and that took me by surprise.

Sorry :)

Shai Almog

olvasatlan,
2016. dec. 8. 0:27:072016. 12. 08.
– CodenameOne Discussions
I think ShareButton adds it because of the SMS option which is effectively redundant on Android. Please file an issue and we'll try to address that somehow.
This might require an API change.

Carlos Verdier

olvasatlan,
2016. dec. 8. 5:48:052016. 12. 08.
– CodenameOne Discussions
Done, thank you.

Carlos Verdier

olvasatlan,
2017. febr. 12. 14:26:332017. 02. 12.
– CodenameOne Discussions

This issue was solved back when we discussed it, but it's happening again. When submitting to Google Play, a warning pops up about READ_PHONE_STATE permission. 

mcw

olvasatlan,
2017. febr. 12. 16:52:192017. 02. 12.
– CodenameOne Discussions
I have an open issue on this, might be related: Issue 1945

Shai Almog

olvasatlan,
2017. febr. 13. 0:09:362017. 02. 13.
– CodenameOne Discussions
If you deny the permission do you see a stack trace in DDMS or any other indication?

Carlos Verdier

olvasatlan,
2017. febr. 13. 4:46:302017. 02. 13.
– CodenameOne Discussions
This is what I get from DDMS when I reject the permission:

02-13 10:30:16.419: W/LGPowerHintPolicy(4555): [Perf] setPowerHintBoostCancelIfNeeded : send boost cancel msg after 500ms
02-13 10:30:16.419: W/System.err(3388): java.lang.NullPointerException: Attempt to invoke interface method 'void com.codename1.media.Media.play()' on a null object reference
02-13 10:30:16.419: W/System.err(3388): at userclasses.StateMachine$40.pointerReleased(StateMachine.java:5058)
02-13 10:30:16.419: W/System.err(3388): at com.codename1.ui.Form.pointerReleased(Form.java:2651)
02-13 10:30:16.419: W/System.err(3388): at com.codename1.ui.Component.pointerReleased(Component.java:3239)
02-13 10:30:16.419: W/System.err(3388): at com.codename1.ui.Display.handleEvent(Display.java:2025)
02-13 10:30:16.419: W/System.err(3388): at com.codename1.ui.Display.edtLoopImpl(Display.java:1070)
02-13 10:30:16.419: W/System.err(3388): at com.codename1.ui.Display.mainEDTLoop(Display.java:999)
02-13 10:30:16.419: W/System.err(3388): at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
02-13 10:30:16.420: W/System.err(3388): at com.codename1.impl.CodenameOneThread$1.run(CodenameOneThread.java:60)
02-13 10:30:16.420: W/System.err(3388): at java.lang.Thread.run(Thread.java:761)
02-13 10:30:16.421: D/YAE Simulator(3388): [EDT] 0:3:41,987 - Exception in AppName version 1.5
02-13 10:30:16.423: D/YAE Simulator(3388): [EDT] 0:3:41,989 - OS and
02-13 10:30:16.423: W/LGPowerHintAppInfoPolicy(4555): [Perf] handleAppInfo : tunermode = 0 / isGame = 0 / fps= -1 / ofValue= -1
02-13 10:30:16.423: D/YAE Simulator(3388): [EDT] 0:3:41,990 - Error java.lang.NullPointerException: Attempt to invoke interface method 'void com.codename1.media.Media.play()' on a null object reference
02-13 10:30:16.424: D/YAE Simulator(3388): [EDT] 0:3:41,991 - Current Form Publi
02-13 10:30:16.424: V/WindowManager(3513): Not removing Window{b07fa19 u0 com.google.android.packageinstaller/com.android.packageinstaller.permission.ui.GrantPermissionsActivity EXITING} due to exit animation 
02-13 10:30:16.425: D/YAE Simulator(3388): [EDT] 0:3:41,991 - Exception: java.lang.NullPointerException - Attempt to invoke interface method 'void com.codename1.media.Media.play()' on a null object reference
02-13 10:30:16.425: D/EodEngineService(13564): Pause pid : 5191 name : com.google.android.packageinstaller
02-13 10:30:16.425: I/EodDetector[v28](13564): com.google.android.packageinstaller is not target app
02-13 10:30:16.425: W/System.err(3388): java.lang.NullPointerException: Attempt to invoke interface method 'void com.codename1.media.Media.play()' on a null object reference
02-13 10:30:16.425: W/System.err(3388): at userclasses.StateMachine$40.pointerReleased(StateMachine.java:5058)
02-13 10:30:16.425: W/System.err(3388): at com.codename1.ui.Form.pointerReleased(Form.java:2651)
02-13 10:30:16.425: W/System.err(3388): at com.codename1.ui.Component.pointerReleased(Component.java:3239)
02-13 10:30:16.425: W/System.err(3388): at com.codename1.ui.Display.handleEvent(Display.java:2025)
02-13 10:30:16.426: W/System.err(3388): at com.codename1.ui.Display.edtLoopImpl(Display.java:1070)
02-13 10:30:16.426: W/System.err(3388): at com.codename1.ui.Display.mainEDTLoop(Display.java:999)
02-13 10:30:16.426: W/System.err(3388): at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
02-13 10:30:16.426: W/System.err(3388): at com.codename1.impl.CodenameOneThread$1.run(CodenameOneThread.java:60)
02-13 10:30:16.426: W/System.err(3388): at java.lang.Thread.run(Thread.java:761)

And this is the trace sent to my mail from the app:

EDT] 0:0:0,3 - Exception: java.lang.ArrayIndexOutOfBoundsException - length=0; index=0
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
        at com.codename1.impl.android.CodenameOneActivity.onRequestPermissionsResult(CodenameOneActivity.java:711)
        at android.app.Activity.requestPermissions(Activity.java:4209)
        at android.support.v4.app.ActivityCompatApi23.requestPermissions(ActivityCompat23.java:32)
        at android.support.v4.app.ActivityCompat.requestPermissions(ActivityCompat.java:316)
        at com.codename1.impl.android.AndroidImplementation.checkForPermission(AndroidImplementation.java:7869)
        at com.codename1.impl.android.AndroidImplementation.checkForPermission(AndroidImplementation.java:7836)
        at com.codename1.impl.android.AndroidImplementation.createMedia(AndroidImplementation.java:2722)
        at com.codename1.ui.Display.createMedia(Display.java:2983)
        at com.codename1.media.MediaManager.createMedia(MediaManager.java:125)
        at com.codename1.media.MediaManager.createMedia(MediaManager.java:94)
        at userclasses.StateMachine$41.lambda$run$119(StateMachine.java:5415)
        at userclasses.StateMachine$41.access$lambda$1(StateMachine.java)
        at userclasses.StateMachine$41$$Lambda$2.run(Unknown Source)
        at com.codename1.ui.Display.processSerialCalls(Display.java:1154)
        at com.codename1.ui.Display.edtLoopImpl(Display.java:1098)
        at com.codename1.ui.Display.invokeAndBlock(Display.java:1207)
        at com.codename1.ui.Display.invokeAndBlock(Display.java:1244)
        at com.codename1.ui.AnimationManager.addAnimationAndBlock(AnimationManager.java:105)
        at com.codename1.ui.Container.replaceComponents(Container.java:869)
        at com.codename1.ui.Container.replaceAndWait(Container.java:798)
        at userclasses.StateMachine.postDescargaPaginaPubli(StateMachine.java:6035)
        at userclasses.StateMachine.lambda$descargaPaginaPubli$127(StateMachine.java:6015)
        at userclasses.StateMachine.access$lambda$65(StateMachine.java)
        at userclasses.StateMachine$$Lambda$66.onSucess(Unknown Source)
        at com.codename1.util.CallbackDispatcher.run(CallbackDispatcher.java:53)
        at com.codename1.ui.Display.processSerialCalls(Display.java:1154)
        at com.codename1.ui.Display.edtLoopImpl(Display.java:1098)
        at com.codename1.ui.Display.invokeAndBlock(Display.java:1207)
        at com.codename1.ui.Display.invokeAndBlock(Display.java:1244)
        at com.codename1.impl.android.AndroidImplementation.checkForPermission(AndroidImplementation.java:7873)
        at com.codename1.impl.android.AndroidImplementation.checkForPermission(AndroidImplementation.java:7836)
        at com.codename1.impl.android.AndroidImplementation.createMedia(AndroidImplementation.java:2722)
        at com.codename1.ui.Display.createMedia(Display.java:2983)
        at com.codename1.media.MediaManager.createMedia(MediaManager.java:125)
        at com.codename1.media.MediaManager.createMedia(MediaManager.java:94)
        at userclasses.StateMachine$41.lambda$run$119(StateMachine.java:5415)
        at userclasses.StateMachine$41.access$lambda$1(StateMachine.java)
        at userclasses.StateMachine$41$$Lambda$2.run(Unknown Source)
        at com.codename1.ui.Display.processSerialCalls(Display.java:1154)
        at com.codename1.ui.Display.edtLoopImpl(Display.java:1098)
        at com.codename1.ui.Display.invokeAndBlock(Display.java:1207)
        at com.codename1.ui.Display.invokeAndBlock(Display.java:1244)
        at userclasses.StateMachine.lambda$descargaPaginaPubli$127(StateMachine.java:5995)
        at userclasses.StateMachine.access$lambda$65(StateMachine.java)
        at userclasses.StateMachine$$Lambda$66.onSucess(Unknown Source)
        at com.codename1.util.CallbackDispatcher.run(CallbackDispatcher.java:53)
        at com.codename1.ui.Display.processSerialCalls(Display.java:1154)
        at com.codename1.ui.Display.edtLoopImpl(Display.java:1098)
        at com.codename1.ui.Display.invokeAndBlock(Display.java:1207)
        at com.codename1.ui.Display.invokeAndBlock(Display.java:1244)
        at com.codename1.ui.AnimationManager.addAnimationAndBlock(AnimationManager.java:105)
        at com.codename1.ui.Container.replaceComponents(Container.java:869)
        at com.codename1.ui.Container.replaceAndWait(Container.java:798)
        at userclasses.StateMachine.postDescargaPaginaPubli(StateMachine.java:6035)
        at userclasses.StateMachine.lambda$descargaPaginaPubli$127(StateMachine.java:6015)
        at userclasses.StateMachine.access$lambda$65(StateMachine.java)
        at userclasses.StateMachine$$Lambda$66.onSucess(Unknown Source)
        at com.codename1.util.CallbackDispatcher.run(CallbackDispatcher.java:53)
        at com.codename1.ui.Display.processSerialCalls(Display.java:1154)
        at com.codename1.ui.Display.edtLoopImpl(Display.java:1098)
        at com.codename1.ui.Display.mainEDTLoop(Display.java:999)
        at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
        at com.codename1.impl.CodenameOneThread$1.run(CodenameOneThread.java:60)
        at java.lang.Thread.run(Thread.java:761)

Shai Almog

olvasatlan,
2017. febr. 14. 0:31:012017. 02. 14.
– CodenameOne Discussions
Thanks for this, it's a different issue. I've added a workaround for it.
Válasz mindenkinek
Válasz a szerzőnek
Továbbítás
0 új üzenet