Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 服务意图必须明确:具有额外功能_Android_Xamarin_Xamarin.android - Fatal编程技术网

Android 服务意图必须明确:具有额外功能

Android 服务意图必须明确:具有额外功能,android,xamarin,xamarin.android,Android,Xamarin,Xamarin.android,我尝试了不同的方法,但不确定出了什么问题,我在启动此特定服务时出现了此错误 服务意图必须是明确的:意图{ act=com.xamarin.action.PLAY(有额外功能)} 启动服务时,我正在传递一个字符串ID,如下所示 var intent = new Intent(MediaService.ActionPlay); intent.PutExtra("ID", ID); StartService(intent); // Err

我尝试了不同的方法,但不确定出了什么问题,我在启动此特定服务时出现了此错误

服务意图必须是明确的:意图{ 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)
{ 
   ....
}
我的服务如下所示

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)
{ 
   ....
}
其中播放动作如下所示

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)
{ 
   ....
}

我做错了什么。

您可以设置您意图的软件包id:

intent.SetPackage(PackageName);
或者使用当前上下文和Java类(或C类型):


非常感谢,我使用了当前上下文和C#type以及
intent.SetAction(“com.xamarin.action.PLAY”)并且它现在正在工作。非常感谢你的帮助。干杯,小伙子,我能帮忙