Android метод или класс для сканирования QR-кода?
Я работаю с шаблоном junaio (дополненная реальность) для Android, и я добавил кнопку с именем "Сканировать", которая будет сканировать код QR. Мне нужно знать, какой метод / функцию / класс или API я должен реализовать на Android, чтобы заставить это действие работать. Есть ли что-нибудь для андроида?
Заранее спасибо!.
PS: я слышал о Zxing, но если я не ошибаюсь, приложение должно быть установлено на телефоне, и я не хочу этого, так как я разрабатываю свое собственное приложение, которое я намерен сделать всю работу.
3 ответа
Чтобы реализовать функцию сканирования в junaio, вам необходимо установить конфигурацию отслеживания arel.Tracking.BARCODE_QR ( http://dev.junaio.com/arel/documentationArelJS/symbols/arel.Tracking.html).
Каждый раз, когда QR-код сканируется, вы получите обратный вызов через обратный вызов onTrackingEvent. В этом обратном вызове вы можете решить, какое действие вы хотите выполнить.
Я не знаю, но вы можете изучить исходный код ZXing, как они это делают http://code.google.com/p/zxing/source/checkout
Хорошо, вот ситуация, я внес несколько предложенных изменений в код, чтобы он мог сканировать QR-коды. Изменения, которые я сделал, были сделаны в файле index.php, который находится внутри папки arel.
<script type="text/javascript">
arel.sceneReady(function()
{
//start with arel here
arel.Scene.setTrackingConfiguration(arel.Tracking.BARCODE_QR);
//set a listener to tracking to get information about when the image is tracked
arel.Events.setListener(arel.Scene, function(type, param){trackingHandler(type, param);});
//if the user holds the device over the pattern already, when the scene starts
arel.Scene.getTrackingValues(function(trackingValues){receiveTrackingStatus(trackingValues);});
});
function trackingHandler(type, param)
{
//check if there us tracking information avaialbe
if(param[0] !== undefined)
{
//if the pattern is found, hide the information to hold your phone over the pattern
if(type && type == arel.Events.Scene.ONTRACKING && para[0].getState() == arel.Tracking.STATE_TRACKING)
{
$('#info').fadeOut("fast");
}
//if the pattern is lost tracking, show the information to hold your phone over the pattern
else if(type && type == arel.Events.Scene.ONTRACKING && param[0].getState() == arel.Tracking.STATE_NOTTRACKING)
{
$('#info').fadeIn("fast");
}
}
};
function receiveTrackingStatus(trackingValues)
{
if(trackingValues[0] === undefined)
$('#info').fadeIn("fast");
};
</script>
Проблема здесь в том, что он не сканирует какой-либо код, я помещаю телефон для сканирования кода, и ничего не происходит... у кого-нибудь есть представление о том, что я здесь делаю неправильно?... Я буду признателен за любую помощь.
Благодарю.
Игнасио.