kopia lustrzana https://github.com/mik3y/usb-serial-for-android
sdk 31 fixes: pending intent mutability
rodzic
1091b4d88b
commit
ab27c19dc3
|
@ -3,7 +3,7 @@ plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 31
|
compileSdkVersion 32
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_1_8
|
||||||
|
@ -12,7 +12,7 @@ android {
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 17
|
minSdkVersion 17
|
||||||
targetSdkVersion 31
|
targetSdkVersion 32
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
|
||||||
missingDimensionStrategy 'device', 'anyDevice'
|
missingDimensionStrategy 'device', 'anyDevice'
|
||||||
|
|
|
@ -8,6 +8,7 @@ import android.content.IntentFilter;
|
||||||
import android.hardware.usb.UsbDevice;
|
import android.hardware.usb.UsbDevice;
|
||||||
import android.hardware.usb.UsbDeviceConnection;
|
import android.hardware.usb.UsbDeviceConnection;
|
||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
|
@ -211,7 +212,8 @@ public class TerminalFragment extends Fragment implements SerialInputOutputManag
|
||||||
UsbDeviceConnection usbConnection = usbManager.openDevice(driver.getDevice());
|
UsbDeviceConnection usbConnection = usbManager.openDevice(driver.getDevice());
|
||||||
if(usbConnection == null && usbPermission == UsbPermission.Unknown && !usbManager.hasPermission(driver.getDevice())) {
|
if(usbConnection == null && usbPermission == UsbPermission.Unknown && !usbManager.hasPermission(driver.getDevice())) {
|
||||||
usbPermission = UsbPermission.Requested;
|
usbPermission = UsbPermission.Requested;
|
||||||
PendingIntent usbPermissionIntent = PendingIntent.getBroadcast(getActivity(), 0, new Intent(INTENT_ACTION_GRANT_USB), 0);
|
int flags = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_IMMUTABLE : 0;
|
||||||
|
PendingIntent usbPermissionIntent = PendingIntent.getBroadcast(getActivity(), 0, new Intent(INTENT_ACTION_GRANT_USB), flags);
|
||||||
usbManager.requestPermission(driver.getDevice(), usbPermissionIntent);
|
usbManager.requestPermission(driver.getDevice(), usbPermissionIntent);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,16 +4,16 @@ plugins {
|
||||||
}
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 31
|
compileSdkVersion 32
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 17
|
minSdkVersion 17
|
||||||
targetSdkVersion 31
|
targetSdkVersion 32
|
||||||
consumerProguardFiles 'proguard-rules.pro'
|
consumerProguardFiles 'proguard-rules.pro'
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
testInstrumentationRunnerArguments = [ // Raspi Windows LinuxVM ...
|
testInstrumentationRunnerArguments = [ // Raspi Windows LinuxVM ...
|
||||||
'rfc2217_server_host': '192.168.0.100',
|
'rfc2217_server_host': '192.168.0.186',
|
||||||
'rfc2217_server_nonstandard_baudrates': 'true', // true false false
|
'rfc2217_server_nonstandard_baudrates': 'true', // true false false
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import android.hardware.usb.UsbDeviceConnection;
|
||||||
import android.hardware.usb.UsbManager;
|
import android.hardware.usb.UsbManager;
|
||||||
import android.media.RingtoneManager;
|
import android.media.RingtoneManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.hoho.android.usbserial.driver.CdcAcmSerialDriver;
|
import com.hoho.android.usbserial.driver.CdcAcmSerialDriver;
|
||||||
|
@ -83,7 +84,8 @@ public class UsbWrapper implements SerialInputOutputManager.Listener {
|
||||||
granted[0] = intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false);
|
granted[0] = intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
PendingIntent permissionIntent = PendingIntent.getBroadcast(context, 0, new Intent("com.android.example.USB_PERMISSION"), 0);
|
int flags = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_IMMUTABLE : 0;
|
||||||
|
PendingIntent permissionIntent = PendingIntent.getBroadcast(context, 0, new Intent("com.android.example.USB_PERMISSION"), flags);
|
||||||
IntentFilter filter = new IntentFilter("com.android.example.USB_PERMISSION");
|
IntentFilter filter = new IntentFilter("com.android.example.USB_PERMISSION");
|
||||||
context.registerReceiver(usbReceiver, filter);
|
context.registerReceiver(usbReceiver, filter);
|
||||||
usbManager.requestPermission(serialDriver.getDevice(), permissionIntent);
|
usbManager.requestPermission(serialDriver.getDevice(), permissionIntent);
|
||||||
|
@ -92,7 +94,7 @@ public class UsbWrapper implements SerialInputOutputManager.Listener {
|
||||||
Thread.sleep(1);
|
Thread.sleep(1);
|
||||||
}
|
}
|
||||||
Log.d(TAG,"USB permission "+granted[0]);
|
Log.d(TAG,"USB permission "+granted[0]);
|
||||||
assertTrue("USB permission dialog not confirmed", granted[0]==null?false:granted[0]);
|
assertTrue("USB permission dialog not confirmed", granted[0] != null && granted[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// extract some device properties:
|
// extract some device properties:
|
||||||
|
|
Ładowanie…
Reference in New Issue