Tôi có một stacktrace được gửi bởi người dùng có ICS.startBluetoothSco() ném ngoại lệ bảo mật (BROADCAST_STICKY) trên ICS
Mở tất cả mọi thứ thiết bị Froyo của tôi là làm việc tốt, nhưng người dùng dường như nhận được từ chối Permission khi AudioManager.startBluetoothSco()
được gọi là ... Tôi không có ý tưởng tại sao điều này đang xảy ra - Tôi biết các Broadcast cho ACTION_SCO_AUDIO_STATE_CHANGED là dính, nhưng nó không phải là ứng dụng đang gửi nó, vì vậy nó không cần sự cho phép ...
Dưới đây là stacktrace:
java.lang.SecurityException: Permission Denial: broadcastIntent() requesting a sticky
broadcast from pid=15341, uid=10064 requires android.permission.BROADCAST_STICKY
at android.os.Parcel.readException(Parcel.java:1327)
at android.os.Parcel.readException(Parcel.java:1281)
at android.media.IAudioService$Stub$Proxy.startBluetoothSco(IAudioService.java:1090)
at android.media.AudioManager.startBluetoothSco(AudioManager.java:975)
at de.bulling.smstalk.libs.utils.AudioUtils.startBluetoothSco(AudioUtils.java:164)
at de.bulling.smstalk.Services.TTS.speakIt(TTS.java:151)
at de.bulling.smstalk.Services.TTS.onInit(TTS.java:83)
at android.speech.tts.TextToSpeech.dispatchOnInit(TextToSpeech.java:627)
at android.speech.tts.TextToSpeech.access$1000(TextToSpeech.java:52)
at android.speech.tts.TextToSpeech$Connection.onServiceConnected(TextToSpeech.java:1279)
at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1068)
at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1085)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
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:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
/chỉnh sửa: tôi có thể tạo lại vấn đề này, và nó không nếu tôi bắt đầu dịch vụ với START_STICKY
hay không.
Có lý do nào để không muốn để bao gồm sự cho phép? –
Không, bây giờ tôi đã đưa nó vào bản cập nhật tiếp theo, nhưng không cần thiết * đối với chức năng này. Vì vậy, phải có một cái gì đó sai trái. Argh - cho đến nay ICS đã mang lại rất nhiều vấn đề .... – Force
Bạn có thể tái tạo nó trong trình giả lập không? Hay nó chỉ xảy ra trên Galaxy Nexus? Nó có thể là một vấn đề thiết bị cụ thể? –