我正在尝试创建我的第一个Android服务并且遇到了一些问题。我看了一遍,不知道我做错了什么。我的目标是创建一种服务,在扬声器电话打开时最大化我的音量。
package com.example;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.os.IBinder;
import android.telephony.PhoneStateListener;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.util.Timer;
import java.util.TimerTask;
/**
* Created by IntelliJ IDEA.
* User: Matthew
* Date: 12/17/10
* Time: 9:36 AM
* To change this template use File | Settings | File Templates.
*/
public class MyService extends Service {
private Timer timer = new Timer();//timer constructor
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate()
{
Toast.makeText(this, "Service created...", Toast.LENGTH_LONG).show();
super.onCreate();
startService();
}
public void startService()
{
Toast.makeText(this, "Service started...", Toast.LENGTH_LONG).show();
timer.scheduleAtFixedRate(new TimerTask()
{
AudioManager am;
public boolean speakerPhone = false;
@Override
public void run()
{
//I am not sure what should go here...
//I want the volume to go to max volume when I turn the speaker phone on
/*
//if(am.isSpeakerphoneOn())
{
am.adjustStreamVolume(AudioManager.STREAM_VOICE_CALL,
AudioManager.ADJUST_RAISE, 2);
}
*/
}
},0,1000);
}
@Override
public void onDestroy()
{
super.onDestroy();
stopService();
}
public void stopService()
{
Toast.makeText(this, "Service stopped...", Toast.LENGTH_LONG).show();
if(timer != null)
{
timer.cancel();
}
}
}
答案 0 :(得分:0)
首先,您可能希望提供更多信息。例如,输出等。它编译了吗?运行时,服务是否显示在进程列表中?
其次,打破它。提供启动hello world的服务。创建一个更改音量的应用程序。编写大量的小型Android测试用例是探索API的最佳方式。
第三,对IBinder的覆盖看起来非常奇怪。花点时间浏览Alarm应用程序的API Demo代码,特别是apis / app / AlarmService_Service.java。
坚持下去。
查尔斯