我想使用耳机按钮来启动/停止秒表。 任何人都可以给我一些提示(代码,链接等)吗? 我的问题是如何获得按钮事件。 我在android编程中绝对是个好主意......
由于
答案 0 :(得分:1)
如果你能提供源代码会更好。
要在Button上侦听事件,您必须为其设置OnClickListener。例如:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button button;
private boolean isStopWatchRunning=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button);
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
toggle();
}
private void toggle() {
if(isStopWatchRunning){
//Stop StopWatch
}else{
//Start StopWatch
}
}
}
答案 1 :(得分:0)
您可以使用MediaButtonReceiver
接收耳机按钮点击。这与MediaSessionCompat
一起使用。您需要注册服务并覆盖onStartCommand()
private MediaSessionCompat mMediaSessionCompat = ...;
public int onStartCommand(Intent intent, int flags, int startId) {
MediaButtonReceiver.handleIntent(mMediaSessionCompat, intent);
return super.onStartCommand(intent, flags, startId);
}
您必须提供的MediaSessionCompat.Callback
,还有可用于实施的方法onPause()
,onStart()
和onStop()
。
但是你必须考虑你的用例,因为你已经放松了对媒体的控制。相反,您还可以查看MEDIA_BUTTON
操作并自行实施您的行为。