不允许启动服务 Intent 未经许可不从 uid 导出

Not allowed to start service Intent without permission not exported from uid

我试图在我的 android 应用程序中调用第 3 方服务意图,但 returns 错误:

java.lang.SecurityException: Not allowed to start service Intent { act=com.othercompany.SERVICE_INTENT flg=0x3 cmp=com.mycompany.package/com.othercompany.service.CoreService (has extras) } without permission not exported from uid 10107

我尝试调用的服务意图完全在我的应用程序之外,因此我无法访问它的代码或清单文件。

我的代码如下:

        buttonPress.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent talkButtonDown = new Intent(PRESS_CLASS);
            talkButtonDown.setClassName(PACKAGE, "com.othercompany.service.CoreService");
            talkButtonDown.putExtra(RESTART_EXTRA, true);
            talkButtonDown.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            talkButtonDown.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
            startService(talkButtonDown);
        }
    });

我在其他帖子中读到过在外部应用程序的清单中需要 'exported=true',但我无权访问此清单。 还有什么可能会引发此错误吗?任何帮助将不胜感激。 干杯。

Is there anything else that could be throwing this error?

没有。该服务未导出。仅供托管服务的应用程序使用,不供其他应用程序直接调用。

您可以考虑联系相关公司,看看他们是否有记录和支持的 API 使用他们的 Android 应用程序。