显示来自BatteryService.java的祝酒词

时间:2014-02-26 01:59:19

标签: android

我正在为我自己的设备开发自己的android版本,而不是使用一些商用手机。 这意味着我控制平台/ android构建。即我不在Android上的应用程序上工作,我在android本身内部工作。

我正在尝试显示关闭(或以任何其他方式通知用户)shutdownIfOverTemp()关闭的原因(例如,diplay to toast“电池过热,关闭”)。原因是我运行的电池有额外的关机条件,我希望用户知道哪一个正在运行(无需查看一些日志)

当谷歌调用文件AndroidService.java时,它不是服务,因为它不扩展服务,它扩展了Binder(完全来源:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.4_r1.2/com/android/server/BatteryService.java/

我不知道如何将上下文传递给Toast:

Toast toast = Toast.makeText( getApplicationContext(), "Battery overheating!", Toast.LENGTH_LONG);

不起作用,我在getApplicationContext()上得到一个未定义的符号:

target Java: services (out/target/common/obj/JAVA_LIBRARIES/services_intermediates/classes)
frameworks/base/services/java/com/android/server/BatteryService.java:244: cannot find symbol
symbol  : method getApplicationContext()
location: class com.android.server.BatteryService
        Toast toast = Toast.makeText(getApplicationContext(), "Battery overheating!", Toast.LENGTH_SHORT);

添加这个也无济于事:

import android.widget.Toast;
import android.content.Context;
import android.content.ContextWrapper;

1 个答案:

答案 0 :(得分:1)

该类扩展了binder

class BatteryService extends Binder {

但调用BatteryService方法时已将上下文作为其参数之一:

public  BatteryService(Context context, LightsService lights) {
    mContext = context;

所以在调用toast时使用mContest而不是getApplicationContest

尝试并报告。