2010-08-30 25 views
0

我正在開發一個Java ME應用程序,它使用相機拍攝快照,然後解碼(使用ZXing庫)。目標是諾基亞手機。諾基亞使用Java ME不支持FocusControl?

我需要使用焦點來獲得清晰的圖像,如果沒有,很難解碼圖像。

由於系列40,控制「videocontrol」和「SnapShopControl」可用。我認爲對於「FocusControl」來說它是一樣的,但事實並非如此。

我發現,它幾乎是不存在的,不僅爲Series 60系列40(僅適用於某些手機),但(更令人驚奇的)和Symbian 3

你可以看到,在Java ME API support on Nokia devices

這些手機支持JSR-234,但音頻和音樂,而不是相機。

正如你可以想象的,這是非常欺騙,諾基亞沒有做好自己的工作。

您是否找到任何解決方案?也許另一個「手邊」控制?恐怕我不得不用C++開始編程,因爲我沒有太多時間。

回答

1

該解決方案一直使用諾基亞的APIBridge(一種可擴展的機制來訪問WRT,Flash Lite和Java應用程序中的設備功能)。您可以訪問攝像頭手機中安裝的軟件,如果可以使用自動對焦,則可以使用該軟件,並返回所拍攝的圖像。

查看Tool details for APIBridge瞭解更多詳情。

實現非常簡單(您可以在設備中安裝APIBridge的SIS文件,並且可以將應用程序和此SIS文件打包在一起)。

您使用下面的代碼:

APIBridge bridge = APIBridge.getInstance(); 
    bridge.Initialize(midlet); 
    NewFileService service = (NewFileService) bridge.createService("service.newfileservice"); 
    Hashtable filter = new Hashtable(); 
    filter.put("NewFileType", "Image"); 
    BridgeResult res= service.TakePhoto(filter); 
0

許多手機的硬件不支持焦點。某些索尼愛立信手機(例如G502)支持FocusControl,但由於硬件不支持,因此它們不允許執行任何操作。

我不敢說在Java ME中你可以對這個問題做任何事情。

如果手機支持對焦控制,但它不是在Java ME的availble的,大概有兩種方法如何解決這個問題:

  • 讓用戶使用內置的攝像頭和加載(最好是最後照片)從相冊。
  • 嘗試從S60 API使用相機焦點。

請注意,我不是S60開發人員。