NameNotFoundException in UsbPermissionActivity when connecting to HID device via USB
Hello,
I work for a company that makes apps and peripherals for the Meta Quest. In particular, we have a device that communicates to the Meta Quest Pro via USB over a HID protocol. Yesterday, our Quest Pro installed a system update (51.0.0.182.268.465860992), which breaks the connectivity to our USB peripheral.
The problem seems to be in the UsbPermissionActivity, and the error and stack trace in LogCat are the following:
E/UsbPermissionActivity: unable to look up package name
android.content.pm.PackageManager$NameNotFoundException: com.Sensoryx.VRfreeStylusSigning
at android.app.ApplicationPackageManager.getApplicationInfoAsUser(ApplicationPackageManager.java:452)
at android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:441)
at com.oculus.os.vrusb.UsbPermissionActivity.onCreate(UsbPermissionActivity.java:74)
at android.app.Activity.performCreate(Activity.java:8057)
at android.app.Activity.performCreate(Activity.java:8037)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3711)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3887)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2276)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:214)
at android.os.Looper.loop(Looper.java:304)
at android.app.ActivityThread.main(ActivityThread.java:7911)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1010)
Some more info on how this used to work: We're running a Unity application with a Java library where we ask for permission to access the device with the following code:
PendingIntent mPermissionIntent = PendingIntent.getBroadcast(m_context, 0, new Intent(ACTION_USB_PERMISSION), PendingIntent.FLAG_IMMUTABLE);
IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION);
m_broadcastReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
permissionRequestCallback(context, intent);
}
};
m_context.registerReceiver(m_broadcastReceiver, filter);
m_usbManager.requestPermission(usbDevice, mPermissionIntent);
My guess is that there is a problem regarding package visibility in the UsbPermissionActivity: https://developer.android.com/training/package-visibility
Is there a possibility that I can either circumvent the UsbPermissionActivity or talk about getting a fix for this bug to a developer at meta?
Best,
Hagen Seifert
