A impressão Bluetooth do Android parou de funcionar em 4.1

Nós temos um aplicativo que imprime imagens para uma impressora Bluetooth. Este aplicativo tem funcionado bem no Android 4.0 ICS, mas quando atualizamos um deles para o Android 4.1 jelly bean, a impressão parou de funcionar com isso no logcat:

W / System.err (19319): java.lang.SecurityException: Negação de permissão: escrevendo com.android.bluetooth.opp.BluetoothOppProvider uri content: //com.android.bluetooth.opp/btopp de pid = 19319, uid = 10106 requer android.permission.ACCESS_BLUETOOTH_SHARE ou grantUriPermission ()

O problema é que estamos declarando essa permissão, então esse erro não faz sentido para nós. Aqui está a linha do nosso manifesto

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.turner.itstrategy.LumenboxClient"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="11" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.VIBRATE" />

     (stuff removed)
</manifest>

Aqui está o código que estamos usando para imprimir. Este código foi retirado dos exemplos em stackoverflow e em outros lugares.

ContentValues values = new ContentValues();

String path = Environment.getExternalStorageDirectory().toString();
File imageFile = new File(path, "CurrentLumenboxPrint.jpg");

//build the message to send on BT
values.put(BluetoothShare.URI, Uri.fromFile(imageFile).toString());
values.put(BluetoothShare.MIMETYPE, "image/jpeg");
values.put(BluetoothShare.DESTINATION, device.getAddress());
values.put(BluetoothShare.DIRECTION, BluetoothShare.DIRECTION_OUTBOUND);
Long ts = System.currentTimeMillis();
values.put(BluetoothShare.TIMESTAMP, ts);

// Here is where the exception happens      
final Uri contentUri = getApplicationContext().getContentResolver().insert(BluetoothShare.CONTENT_URI, values);

Agora estamos mortos na água .. qualquer conselho apreciado.

questionAnswers(1)

yourAnswerToTheQuestion