Android ContentResolver未知URL,但ADB Shell命令工作正常



我正试图在一个应用程序中运行一个插入命令到另一个应用。我正在接受我的ADB Shell命令:

adb shell content insert --uri content://com.***.***/device_info --bind store_id:s:12345

将其转换为Java:

Uri contentUri = Uri.parse("content://com.***.***/device_info");
ContentValues contentValues = new ContentValues();
contentValues.put("store_id", storeIdString);
mContext.getContentResolver().insert(contentUri, contentValues);

然而,当我运行Java代码时,我会得到以下错误:

Unknown URL content://com.***.***/device_info

但如果我运行ADB Shell命令,我不会遇到任何问题。如果我试图在代码中查询相同的URI,同样的问题也会发生,而通过ADB shell命令进行的相同查询则可以很好地进行

发现问题。

从Android SDK第30级开始,内容提供商已通过软件包可见性受到限制。一旦我将应用程序的SDK级别降级到28,它就开始工作了,但这也带来了一系列问题。

无论如何,我建议尝试一下这些建议的解决方案。