如何从其他应用程序/项目调用Android aidl服务?

如何从其他应用程序/项目调用Android aidl服务?,android,aidl,android-service-binding,Android,Aidl,Android Service Binding,我想从其他应用程序中使用我的Bind Android服务,但我找到的所有示例都在同一个应用程序中 我发现有些人问同样的问题,但他们不共享代码或项目结构 我发现有些人也在问同样的问题,但他们不共享最终的代码或项目结构 问题1:(我的代码看起来很像) 问题2: 正如我所知,我必须在新项目中加入我的AIDL,但我不确定该服务在哪里/路径以及如何在另一个应用程序中实现(尽管我猜Android会在我加入服务应用程序的清单时为我解决这个问题) 有人能帮我吗?或者有什么建议吗?如果您想使用AIDL在两个不同的

我想从其他应用程序中使用我的Bind Android服务,但我找到的所有示例都在同一个应用程序中

我发现有些人问同样的问题,但他们不共享代码或项目结构

我发现有些人也在问同样的问题,但他们不共享最终的代码或项目结构

问题1:(我的代码看起来很像)

问题2:

正如我所知,我必须在新项目中加入我的AIDL,但我不确定该服务在哪里/路径以及如何在另一个应用程序中实现(尽管我猜Android会在我加入服务应用程序的清单时为我解决这个问题)


有人能帮我吗?或者有什么建议吗?

如果您想使用AIDL在两个不同的应用程序之间进行通信,那么在两个应用程序中保存AIDL文件的包名应该相同


如果两个应用程序的aidl文件的包名不同,则会出现如下错误:java.lang.SecurityException

如果要使用aidl在两个不同的应用程序之间进行通信,则在两个应用程序中保存aidl文件的包名应相同


如果两个应用程序的aidl文件的包名不同,则会出现如下错误:java.lang.SecurityException

“我不确定路径在哪里”——它将位于与第一个项目相同的位置(例如,Android Studio项目的
应用程序
模块中的
app/src/main/aidl/
)。“如何说该服务是在另一个应用程序中实现的”--您需要制定一个
意图
,从另一个应用程序中识别该服务。请参阅。@commonware中的内容-因此,如果我的路径是app/src/main/aidl/com/app1,我应该在第二个应用程序中创建相同的路径,对吗?关于意图,我认为这是由连接类和
bindService
自动完成的“我应该在第二个应用程序中创建相同的路径,对吗?”--是的。或者,如果这两个应用程序是同一个Android Studio项目中的模块,您可以将AIDL放在库模块中,让两个应用程序模块都依赖于库。“关于意图,我认为它是由连接类和bindService自动完成的”-
bindService()
接受一个
intent
,因此您必须创建它。“我不确定路径在哪里”--它将位于与第一个项目相同的位置(例如,Android Studio项目的
app
模块中的
app/src/main/aidl/
)“如何说该服务在另一个应用程序中实现?”--您需要创建一个
Intent
来标识来自另一个应用程序的服务。请参阅,@commonware中所述-因此,如果我的路径是
app/src/main/aidl/com/app1,我应该在第二个应用程序中创建相同的路径,对吗?关于Intent,我认为它是由连接类和
bind自动完成的Service
“我应该在第二个应用程序中创建相同的路径,对吗?”--是的。或者,如果这两个应用程序是同一个Android Studio项目中的模块,您可以将AIDL放在库模块中,并使两个应用程序模块都依赖于库。“关于意图,我认为它是由连接类和bindService自动完成的”-
bindService()
接受一个
intent
,因此您必须创建它。您可以参考以下内容:您可以参考以下内容: