Android服务问题

时间:2010-12-18 00:04:59

标签: android android-service

我正在尝试创建我的第一个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();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

首先,您可能希望提供更多信息。例如,输出等。它编译了吗?运行时,服务是否显示在进程列表中?

其次,打破它。提供启动hello world的服务。创建一个更改音量的应用程序。编写大量的小型Android测试用例是探索API的最佳方式。

第三,对IBinder的覆盖看起来非常奇怪。花点时间浏览Alarm应用程序的API Demo代码,特别是apis / app / AlarmService_Service.java。

坚持下去。

查尔斯