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

时间:2016-08-30 21:31:55

标签: java android android-intent intentservice

我试图在我的Android应用程序中调用第三方服务意图,但它返回错误:

  

java.lang.SecurityException:不允许在未经导出的情况下启动服务Intent {act = com.othercompany.SERVICE_INTENT flg = 0x3 cmp = com.mycompany.package / com.othercompany.service.CoreService(has extras)}来自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);
        }
    });

我已在其他帖子中读到有关需要&export; true ='在外部应用程序的清单中,但我无法访问此清单。 还有什么可以抛出这个错误吗?任何帮助将受到高度赞赏。 欢呼声。

1 个答案:

答案 0 :(得分:2)

  

还有什么可能引发这个错误吗?

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

您可以考虑与相关公司联系,了解他们是否拥有使用其Android应用程序的文档化和支持的API。