Nativescript ML套件OCR文本识别在恢复sdk <23时崩溃

时间:2018-11-21 15:34:50

标签: android-camera nativescript firebase-mlkit

在Nativescript中,当我暂停应用并恢复运行时,对于sdk小于23的设备,它使用ML-kit文本识别功能:

  

System.err:由:java.lang.RuntimeException:照相机   初始化失败,因为相机设备已经存在   打开(-16)

在sdk> = 23中,它似乎可以正常工作,但其想法是使它在所有设备上都能工作(我的客户端设备具有android 5.5,因此sdk <23)。我正在实时使用插件:

<FirebaseMLKitTextRecognition:MLKitTextRecognition
                id="ocrCam"
                class="ocrCam"
                width="100%"
                height="50%"
                processEveryNthFrame="3"
                preferFrontCamera="false"
                torchOn="{{ lightOn }}"
                pause="{{ pauseOCR }}"
                scanResult="onTextRecognitionResult" />

我阅读了一些有关权限的信息,例如较旧的版本不需要它们,但新版本则需要它们,并且在询问它们时崩溃。但是这个问题在“ min sdk 23”下关闭了。

是否有任何方法可以控制崩溃或在暂停时破坏xml元素?

1 个答案:

答案 0 :(得分:1)

尝试在应用程序/活动的暂停事件释放摄像机。

set @query = 'select PanelID, PanelCode, PanelName, ApplicationID, 
' + @cols + ', (ISNULL(' + REPLACE(@cols, ',', ',0.) + ISNULL(') + ',0.)) AS TOTAL from (
select 
distinct p.PanelID, p.PanelCode, p.PanelName, pApps.ApplicationID, ppl.LastName, isnull(ev.AnswerNumeric, 0) as AnswerNumeric

from 
tblpanels p inner join tblEvaluators e on p.PanelID = e.PanelID
inner join tblPeople ppl on ppl.PersonID = e.PersonID
inner join tblPanelApps pApps on pApps.PanelID = p.PanelID
left join tblEvaluations ev on ev.ApplicationID = pApps.ApplicationID and ev.EvaluatorID = e.EvaluatorID

where 
p.PanelID in (1234, 3656)
)tmp
PIVOT
(
max(AnswerNumeric)
For LastName IN (' + @cols + ')
) As P
Order By PanelID, ApplicationID'
--print @query
execute(@query)