我尝试了不同的东西,但不确定出了什么问题,我在开始这项特定服务时遇到了这个错误。
服务意图必须明确:意图{ act = com.xamarin.action.PLAY(有额外内容)}
我在启动服务时传递字符串ID
,如下所示
var intent = new Intent(MediaService.ActionPlay);
intent.PutExtra("ID", ID);
StartService(intent); // Error here
我的服务类似于以下内容
[Service]
[IntentFilter(new[] { ActionPlay, ActionPause, ActionStop })]
public class MediaService: Service
{
public const string ActionPlay = "com.xamarin.action.PLAY";
public const string ActionPause = "com.xamarin.action.PAUSE";
public const string ActionStop = "com.xamarin.action.STOP";
public override StartCommandResult OnStartCommand(Intent intent,
StartCommandFlags flags, int startId)
{
switch (intent.Action)
{
case ActionPlay: Play(intent.GetStringExtra("ID")); break;
case ActionStop: Stop(); break;
case ActionPause: Pause(); break;
}
}
}
游戏动作如下
public bool Play(string playID)
{
....
}
我做错了什么。
答案 0 :(得分:1)
您可以设置意图的包ID:
intent.SetPackage(PackageName);
或者使用当前上下文和Java类(或C#类型):
var intent = new Intent(Application.Context, typeof(MediaService));