gpt4 book ai didi

android - 广播结果始终为零

转载 作者:行者123 更新时间:2023-11-29 17:40:36 24 4
gpt4 key购买 nike

我正在尝试创建一个发送号码的外部广播服务。客户端(外部应用程序)试图向我的服务发送请求并且服务发回一个数字。我在 AndroidManifest.xml 中注册了我的服务和广播接收器:

<service android:exported="true" android:enabled="true" android:name=".MyService"/>
<receiver android:exported="true" android:enabled="true" android:name=".MyStartServiceReceiver">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>

我的广播课:

public class MyStartServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent intent1 = new Intent(context, MyService.class);
context.startService(intent1);
}
}

在 MyService 类中,我试图放置额外的数据

public void onStart(Intent intent, int startId) {
Log.i(TAG, "service started");
intent.setClass(getApplicationContext(), MyService.class);
intent.setAction(Intent.ACTION_SEND);
intent.putExtra("result", 10);
sendBroadcast(intent);
}

然后将其发回,但我一直为零。我使用 adb shell 检查我的服务:

adb shell am broadcast -a android.intent.action.SEND
Broadcasting: Intent { act=android.intent.action.SEND }
Broadcast completed: result=0

有人知道我的服务出了什么问题吗?

最佳答案

你可以在这里看到:

http://developer.android.com/reference/android/content/Intent.html

ACTION_SEND是activity action,不能和receiver一起使用。

所以你必须从receiver切换到activity,你可以使用Theme.NoDisplay让它成为一个隐藏的activity

[编辑]更多解释:BroadcastReceiver with intent-filter for them?

关于android - 广播结果始终为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28907395/

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