2014-02-26 74 views
0

我正在爲自己的設備製作自己的android版本,而不是使用某些商用手機。 這意味着我控制平臺/ android構建。即我不在android上的應用程序工作,我在android本身內部工作。顯示來自BatteryService.java的烤麪包

我正在嘗試顯示shutdownIfOverTemp()關閉的原因(例如,顯示麪包「電池過熱,關閉」)的原因(或以任何其他方式通知用戶)。原因是我運行的電池有額外的關機條件,我希望用戶知道哪一個在玩(無需看一些日誌)

雖然Google調用文件AndroidService.java,但它是不服務的,因爲它沒有延伸服務,它擴展了活頁夾(完整的源代碼在這裏: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.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; 
+0

有一個上下文參數'公共BatteryService(上下文上下文,LightsService燈)'使用上下文來顯示烤麪包。 'mContext = context;'使用'mContext'。 – Raghunandan

+0

OMG我覺得很蠢! –

回答

1

類擴展粘結劑

class BatteryService extends Binder { 

但該方法BatteryService被稱爲與上下文已經作爲它的參數之一:

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

所以在調用toast而不是getApplicationContest時使用mContest

試一試,然後回報。

+0

謝謝。 Raghunandan在你做之前(在評論中)回答,你們都有同樣的答案,並且它允許我解決我的問題。我想將其標記爲已解決/已答覆,我想你已經得到了信用,因爲你有一個答案,而不是一個評論。對不起拉古南丹,感謝你的幫助。 –