2013-08-05 92 views
1

我想使用內置於我的android設備的閃光燈LED。我發現了一個現有的question,這非常有幫助,但現在我看到一個奇怪的編譯錯誤。問題是我的代碼中檢查閃存可用性的部分。LED閃光燈激活

boolean FlashAvails=Context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 

有一個編譯錯誤,讀取「無法使靜態參照非靜態方法getPackageManager()從型上下文」。

+0

該變量不是靜態的,所以我不明白爲什麼我收到這個消息 –

回答

1

的方法getPackageManager()也不是一成不變的,根據的Javadoc: http://developer.android.com/reference/android/content/Context.html

你需要去的上下文的引用,然後就可以調用該方法。

要到上下文的引用,你都可以:

Context appContext = Context.getApplicationContext(); 

然後你就可以訪問包管理器如下:

appContext.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); 

確保包括進口:

import android.content.Context; 

假設你使用Eclipse,你可以按下:ctrl-shift-o,它會重新組織你的導入和拉入任何缺失的東西。

如果您還是有問題,另一種方式是讓相機參數,在此公告中描述:How to find flashlight feature is available or not in device < = sdk 4

+0

怎麼辦我獲得了對上下文的參考? –

+0

我更新了我的回答來回答你的問題。 – lordoku

+0

那麼Context.getApplicationContext()在我的原始文章中替換「上下文」?這也不能編譯。 –