gpt4 book ai didi

android - 我如何在另一个应用程序(不同的包)中实现的 android 中启动(和绑定(bind))远程服务?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:51 24 4
gpt4 key购买 nike

我有点受困于 android 中的远程服务。事情是我在包“a.b.c”中实现了一个远程服务,我希望其他应用程序能够访问该服务。我摆脱了整个糟糕的 aidl-stuff 并设计了服务的“接口(interface)”以通过广播 Intent 工作。到目前为止工作正常......

问题是:我如何获得一个不同的应用程序(不同的包,不同的项目,甚至可能是不同的开发人员,...)来启动/停止服务?

package d.e.f;

import a.b.c.*;

public class main extends Activity {
protected ImyService myService;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Intent intent = new Intent(ImyService.class.getName());
bindService(intent, sConnection, Context.BIND_AUTO_CREATE);
}

protected ServiceConnection sConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder binder) {
wlService = ImyService.Stub.asInterface(binder);
ServiceConnected = true;
Toast.makeText(main.this, "service connected", Toast.LENGTH_SHORT).show();
}

public void onServiceDisconnected(ComponentName className) {
wlService = null;
ServiceConnected = false;
Toast.makeText(main.this, "service disconnected", Toast.LENGTH_SHORT).show();
}
};
}

这会使我的应用程序在启动时立即崩溃。我做错了什么?我将如何让它发挥作用?

一旦运行,命令和数据将通过广播传递。所以这应该不是真正的问题......

最佳答案

第 1 步:设置 <intent-filter>为你的 <service><action>字符串。

第 2 步:为 Intent 使用该操作字符串你使用bindService() (例如,new Intent("this.is.my.custom.ACTION"))

关于android - 我如何在另一个应用程序(不同的包)中实现的 android 中启动(和绑定(bind))远程服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3075165/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com