Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
briar
briar
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 681
    • Issues 681
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 16
    • Merge Requests 16
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • briar
  • briarbriar
  • Issues
  • #184

Closed
Open
Opened Dec 17, 2015 by akwizgran@akwizgranOwner
  • Report abuse
  • New issue
Report abuse New issue

Disabling Bluetooth adapter on UI thread violates Strict Mode

On the Galaxy Nexus (Android 4.3), BluetoothAdapter#disable() results in a disk write, which violates strict mode. Maybe we should run the enable() and disable() calls on the AndroidExecutor?

12-17 12:19:33.868 29626-29626/org.briarproject D/StrictMode: StrictMode policy violation; ~duration=319 ms: android.os.StrictMode$StrictModeDiskWriteViolation: policy=287 violation=1
                                                                  at android.os.StrictMode$AndroidBlockGuardPolicy.onWriteToDisk(StrictMode.java:1097)
                                                                  at android.database.sqlite.SQLiteConnection.applyBlockGuardPolicy(SQLiteConnection.java:1043)
                                                                  at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:779)
                                                                  at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
                                                                  at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
                                                                  at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
                                                                  at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1339)
                                                                  at com.android.providers.settings.SettingsProvider.insertForUser(SettingsProvider.java:914)
                                                                  at com.android.providers.settings.SettingsProvider.callFromPackage(SettingsProvider.java:634)
                                                                  at android.content.ContentProvider$Transport.call(ContentProvider.java:279)
                                                                  at android.provider.Settings$NameValueCache.putStringForUser(Settings.java:818)
                                                                  at android.provider.Settings$Global.putStringForUser(Settings.java:5529)
                                                                  at android.provider.Settings$Global.putString(Settings.java:5519)
                                                                  at android.provider.Settings$Global.putInt(Settings.java:5607)
                                                                  at com.android.server.BluetoothManagerService.persistBluetoothSetting(BluetoothManagerService.java:255)
                                                                  at com.android.server.BluetoothManagerService.disable(BluetoothManagerService.java:439)
                                                                  at android.bluetooth.IBluetoothManager$Stub.onTransact(IBluetoothManager.java:116)
                                                                  at android.os.Binder.execTransact(Binder.java:388)
                                                                  at dalvik.system.NativeStart.run(Native Method)
                                                              # via Binder call with stack:
                                                              android.os.StrictMode$LogStackTrace
                                                                  at android.os.StrictMode.readAndHandleBinderCallViolations(StrictMode.java:1687)
                                                                  at android.os.Parcel.readExceptionCode(Parcel.java:1413)
                                                                  at android.os.Parcel.readException(Parcel.java:1382)
                                                                  at android.bluetooth.IBluetoothManager$Stub$Proxy.disable(IBluetoothManager.java:286)
                                                                  at android.bluetooth.BluetoothAdapter.disable(BluetoothAdapter.java:550)
                                                                  at org.briarproject.android.SettingsActivity.onClick(SettingsActivity.java:297)
                                                                  at android.view.View.performClick(View.java:4240)
                                                                  at android.view.View$PerformClick.run(View.java:17721)
                                                                  at android.os.Handler.handleCallback(Handler.java:730)
                                                                  at android.os.Handler.dispatchMessage(Handler.java:92)
                                                                  at android.os.Looper.loop(Looper.java:137)
                                                                  at android.app.ActivityThread.main(ActivityThread.java:5103)
                                                                  at java.lang.reflect.Method.invokeNative(Native Method)
                                                                  at java.lang.reflect.Method.invoke(Method.java:525)
                                                                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
                                                                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                                                                  at dalvik.system.NativeStart.main(Native Method)
Assignee
Assign to
Milestone B
Milestone
Milestone B (Past due)
Assign milestone
Time tracking
None
Due date
None
Reference: briar/briar#184