zxing1.5버전을 apk로 만들어서 핸폰에 넣고 qr코드 인식하는거 까지 확인했습니다.
그 qr코드를 찍으면 홈페이지 주소가 나오는데
그 주소를 클릭해야지 홈페이지로 접속되는데
클릭하지 않고 카메라로 찍으면 바로 홈페이지로 가게하려면
어느부분을 어떻게 수정해야하나요
zxing 소스를보니;; 너무 막막해서 이렇게 질문드립니다..
혹시나 아래 소스에서 수정하면 될지몰라 올립니다 ㅜ.ㅜ
package com.google.zxing.client.android.result;
import com.google.zxing.client.android.R;
import com.google.zxing.client.result.EmailAddressParsedResult;
import com.google.zxing.client.result.ParsedResult;
import android.app.Activity;
public final class EmailAddressResultHandler extends ResultHandler {
private static final int[] buttons = {
R.string.button_email,
R.string.button_add_contact
};
public EmailAddressResultHandler(Activity activity, ParsedResult result) {
super(activity, result);
}
@Override
public int getButtonCount() {
return buttons.length;
}
@Override
public int getButtonText(int index) {
return buttons[index];
}
@Override
public void handleButtonPress(int index) {
EmailAddressParsedResult emailResult = (EmailAddressParsedResult) getResult();
switch (index) {
case 0:
sendEmailFromUri(emailResult.getMailtoURI(), null, null);
break;
case 1:
String[] addresses = new String[1];
addresses[0] = emailResult.getEmailAddress();
addContact(null, null, addresses, null, null, null, null);
break;
}
}
@Override
public int getDisplayTitle() {
return R.string.result_email_address;
}
}
외부에서 인텐트로 호출하지 않고 그냥 프로그램을 설치해서 스시는거면 handleDecodeInternally 여기서 수정 해 주시면 되겠네요.
그 함수 내에서 ResultHandlerFactory 를 생성해서 처리하는데, Factory에서 QR Code type에 따라서 구분해서 화면 그려주고 버튼 생성 합니다.
어차피 Result는 알고 있으므로, Factory 안거치고 URI를 Parsing해서 바로 Browser를 호출 하시면 될 것 같네요.
QR Code 인식이 끝나면 바로 호출 되구요.
해당 함수 윗부분에
ParsedResult result = ResultParser.parseResult(rawResult);
ParsedResultType type = result.getType();
if(type.equals(ParsedResultType.URI) == true)
{
URIParsedResult uriResult = (URIParsedResult)result;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(android.net.Uri.parse(uriResult.getURI()));
startActivity(intent);
}
이런식으로 하시면 인식한 주소가 바로 브라우져로 연결 됩니다.
참조하셔서 작업 하세요.
핸들디코더 이 함수 안에서
statusView.setVisibility(View.GONE);
viewfinderView.setVisibility(View.GONE);
resultView.setVisibility(View.VISIBLE);
요거 밑에 님이 적어주신거 하면된다는뜻인가요?
복사해서 빨간줄 임폴트하니 오류는 없는거같은데
아직 폰에 넣어보질못해서 실험을 못하구있네요^^;;