goodev / a2dpvolume

Automatically exported from code.google.com/p/a2dpvolume
1 stars 0 forks source link

Crash on device disconnect #131

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Device (phone) brand: Samsung
Device (phone) model: Nexus
java.lang.SecurityException: Permission Denial: not allowed to send broadcast 
android.intent.action.HEADSET_PLUG

Original issue reported on code.google.com by JimR...@gmail.com on 28 Jul 2012 at 1:48

GoogleCodeExporter commented 9 years ago

v2.8.8
Jul 26, 2012 7:35:33 PM
1 reports/week
1 reports
java.lang.RuntimeException: Error receiving broadcast Intent { 
act=android.bluetooth.device.action.ACL_DISCONNECTED flg=0x8000010 (has extras) 
} in a2dp.Vol.service$4@41846400
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:765)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.SecurityException: Permission Denial: not allowed to send 
broadcast android.intent.action.HEADSET_PLUG from pid=1389, uid=10077
at android.os.Parcel.readException(Parcel.java:1425)
at android.os.Parcel.readException(Parcel.java:1379)
at 
android.app.ActivityManagerProxy.broadcastIntent(ActivityManagerNative.java:1995
)
at android.app.ContextImpl.sendBroadcast(ContextImpl.java:954)
at android.content.ContextWrapper.sendBroadcast(ContextWrapper.java:312)
at a2dp.Vol.service.DoDisconnected(service.java:699)
at a2dp.Vol.service$4.onReceive(service.java:679)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:755)
... 9 more

Original comment by JimR...@gmail.com on 28 Jul 2012 at 1:49

GoogleCodeExporter commented 9 years ago
Added try/catch to sending headset unplugged intent as it appears ICS and up 
don't allow this anymore.  Please test and report results.

Original comment by JimR...@gmail.com on 28 Jul 2012 at 3:37

Attachments:

GoogleCodeExporter commented 9 years ago

Original comment by JimR...@gmail.com on 28 Jul 2012 at 3:40

GoogleCodeExporter commented 9 years ago
This is not a fix, the app will just catch the exception. Any ideas on what 
permission is needed?

Original comment by georgi.t...@googlemail.com on 2 Aug 2012 at 12:17

GoogleCodeExporter commented 9 years ago
I don't know what permission is needed.  I posted the stack trace above and 
that is all I know.  I agree I simply applied a band aide and a better solution 
is needed.  Any help would be appreciated.

Original comment by JimR...@gmail.com on 2 Aug 2012 at 12:20

GoogleCodeExporter commented 9 years ago
I suspect they stopped apps from sending this intent as it should really only 
be send on a hardware trigger.  I was sending this to stop some music players 
like Pandora which is very stubborn.  I will need to look deeper into Jelly 
Bean to find another approach.  Jelly Bean has caused this app many problems.  
It has been painful and it happened at a time when I am very busy and just 
don't have the time to work on it.  Any help would be appreciated.  This is an 
open source project and I would welcome help to work on it.

Original comment by JimR...@gmail.com on 2 Aug 2012 at 12:29

GoogleCodeExporter commented 9 years ago
If i find a fix ,will post here, but let me know if you do aswel.

Original comment by georgi.t...@googlemail.com on 2 Aug 2012 at 12:54