ุณูููู ูู ู
ุง ููุงู ูู ุงูู
ูุงู ู
ุซูุฑุงู ููุงูุชู
ุงู
ุญุตุฑููุง ูู
ุทูุฑู 1C.ุงูููู
ุณูู ูููู
ุจุชุญููู ุงูู
ููู ุงูุฎุงุฑุฌู ูู "1C Mobile Application". ุธูุฑ ูุฐุง ุงูู
ูุงู ูุณุจุจูู. ุณูููู
ุจุชุทููุฑ ูู ุดูุก ุชุญุช ููุณ ATOL Smart.Lite
- ุชุจูู ุฃู ุชุทููุฑ ุชุทุจูู ุฃุตูู ุฃูุซุฑ ุชุนููุฏูุง ู
ู
ุง ููุช ุฃุนุชูุฏ ูู ุงูุจุฏุงูุฉ.
- ุชู
ุชููู ุงูุนุฏูุฏ ู
ู ุงูุทูุจุงุช ุนูู ูุฌู ุงูุชุญุฏูุฏ ููู
ููู ุงูุฎุงุฑุฌู ู 1 C
ูุจู ุฐูู ุ ูุงู ูุฏู ุจุงููุนู ุฎุจุฑุฉ ูู ูุชุงุจุฉ ู
ูููุงุช
c++
ุงูุฎุงุฑุฌูุฉ. ูููุงู ุญุชู
ูุงูุจ ูู
ูุตุฉ x86. ููุฏ ูุชุจ ุฏูู ุฃู ููู
c++
. ูู
ุน ุฐูู ุ ููู ูุนู
ู ูู ู
ุดุฑูุนูู ุ ููุง ูุณูุท. ููุชูู ุฅูู ุฌููุฑ ุงูู
ุดููุฉ. ุชุญุชุงุฌ ุฅูู ู
ููู ุฃุตูู ูุชููู ุฑุณุงุฆู ุงูุจุซ ูู 1C. ุณูุฐูุจ ุนุจุฑ ุงูุฅูุชุฑูุช ููููู
ุฃู ููุงู ุญููู ุฌุงูุฒุฉ. ููููู
ุฌู
ูุนูุง ุนูู ู
ููุนู ุบูุฑ ุงูู
ูุถู ุ ุจุณุจุจ ุงูุฌุดุน ุงูู
ูุฑุท. ูุฃูุง ูุง ุฃุฑูุฏ ุฃู ุฃุฏูุน ููุตูุฏูู ุงูุฃุณูุฏ. ูู
ุน ุฐูู ุ ุธูุฑุช
ู
ูุงูุฉ ู
ู
ุชุงุฒุฉ ุจุนููุงู "ุงูู
ูููุงุช ุงูุฎุงุฑุฌูุฉ ูู
ูุตุฉ ุงูู
ุญู
ูู 1C ููุธุงู
Android OS" . ูุตู ููููุฉ ุชูููู ูุณุฎุฉ ู
ุญู
ููุฉ ู
ู ุฃุญุฏ ุงูู
ูููุงุช ุ ูู
ุง ูุญุชุงุฌ ุฅูู ุชุซุจูุชู. ูู
ุง ุฃููู
ูุง ุ ููู
ุง ููู ุงูููุฏ ุงูู
ุตุฏุฑู ููู
ูุงู ุฃุนูุงู. ุดูุฑุง ุฌุฒููุง ููุฑุฌู ุงููุฑูู
ูุฌููุฏู. ููุฏ ุณุงุนุฏุช ูุซูุฑุง ู
ุน ู
ุซุงู ุญู ูููู
ู
ุงุฐุง ูููู ูุนู
ู. ุซู
ุงุถุทุฑุฑุช ุฅูู ุชูุณูุน ุขูุงูู ููููุงู ููู ูุนู
ู JNI. ุจุณูุทุฉ ููุงุถุญุฉ
ููุง ูููุง . ุฃูุตู ุจุฃู ุชุชุนุฑู ุนูููู
. ุฃูุง ู
ุชุฃูุฏ ู
ู ุฃู ู
ุจุฑู
ุฌู c ++ ุงูุญูููููู ูู ูุนุฌุจูู ุงูููุฏ ุฃุทูุจ ู
ูู ุฃู ุชููู ู
ุชุณุงู
ุญูุง ูุฃู ุชูุชุณุญ ู
ุง ูู
ูู ุชุญุณููู ูุงููุชุงุจุฉ ุจุดูู ุตุญูุญ.
ููุจุฏุฃ. ุฃุฎุฐุช ุดูุฑุฉ ุงูู
ุตุฏุฑ ู
ู ุงูู
ุณุชูุฏุน ุงูุฐู ุฃุดุฑุช ุฅููู ุณุงุจููุง ุ ูุฃุนุฏุชู ุจุงููุงู
ู ุชูุฑูุจูุง ูุชูุงุณุจ ุงุญุชูุงุฌุงุชู. ูู
ููู ุฃู ุชุฃุฎุฐ
ููุง . ุฏุนูุง ูุฐูุจ ุงูููุงุท ุงูุฑุฆูุณูุฉ. ุงูุฅุฌุฑุงุก ุงูุฑุฆูุณู ุจุงููุณุจุฉ ููุง ูู
startEventsWatch
ุ ุญูุซ ูุชุญูู ู
ู ุฃูู ููุณ ูุฏููุง
BroadcastReceiver
ู
ุชุตู ูุฅุนุงุฏุฉ ุชุนุฑูู ูุธููุฉ
onReceive
ุญูุซ ููุธุฑ ุฅูู ู
ุง ุญุฏุซ ุฅูููุง ุ ูู
ูุก ุงูุญููู ุ ูุงุณุชุฏุนุงุก ูุธููุฉ
OnBroadcastReceive
ูุงูุขู ูู ูุธููุฉ ุงูุงุชุตุงู ุจูู java ู C + + ููุฃุฎุฐูุง ู
ู ุนุงูู
Android ุฅูู ุนุงูู
1C. ุงูู
ุฒูุฏ ุนู ูุฐุง ูู ููุช ูุงุญู. ุชุจุฏู ุงูุฎุทูุท ุงูุนุฒูุฒุฉ ูู
ุง ูุฑูุฏ ุงูุญุตูู ุนููู ูู 1C ููุฐุง.
filter.addAction("com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST"); filter.addAction(NEW_KEY_UP);
ููู ูุตู ุฃููุง ูุชููุน ุญุฏุซูุง ู
ู ุงูู
ุงุณุญ ุงูุถูุฆู. ูู ุญุงูุชู ุ ูุฐุง
com.xcheng.scanner...
ูู ุญุงูุชู ุ ุงุนุชู
ุงุฏูุง ุนูู ุงูู
ุงุณุญ ุงูุถูุฆู ุ ุณูููู ููุงู ุฎุท ุขุฎุฑ. ููููุง ูุฐูู ุ ุณุชููู ุงูุจูุงูุงุช ุงูู
ูุฌูุฏุฉ ุฏุงุฎู ุงูุฑุณุงูุฉ ู
ุฎุชููุฉ ุฃูุถูุง. ูููุงุนุฏุฉ ุนุงู
ุฉ ุ ูู
ูู ุงูุญุตูู ุนูู ูุฐู ุงูุจูุงูุงุช ู
ู ุงูุดุฑูุฉ ุงูู
ุตูุนุฉ ูู TSD. ุญุณูุง ุ ุฃู ุฅููุงุก ูุธุฑุฉ ุนูู logcat. ููุช ุฃุฑุบุจ ุฃูุถูุง ูู ุชููู ุฑู
ูุฒ ุงุถุบุท ุนูู ุฒุฑ ุงูุฃุฌูุฒุฉ. ููู ุงูู
ุดููุฉ ูู
ุชุญู ูู ุงูุฌุจูุฉ. ุฅู ุฅุถุงูุฉ
onKeyUP
ุฅูู ุงูููุฏ ูุฅุฑุณุงูู ุฅูู
sendBroadcast
ูู
ููุฌุญ. ููุณ ู
ู ุงูู
ุณุชุบุฑุจ ุ ูุดุงุทูุง ููุณ ูู ุงูู
ูุฏู
ุฉ. ููุฐุง ุงูุณุจุจ ุ ุงุถุทุฑุฑุช ุฅูู ุฑู
ู
AccessibilityService
ุจุณุฑุนุฉ
startEventsWatch public void startEventsWatch() { if (m_Receiver==null) { m_Receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent != null) { String event, type, data; switch (intent.getAction()) { case "com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST": event = "NewBarcode"; type = intent.getStringExtra("EXTRA_BARCODE_DECODING_SYMBOLE"); data = intent.getStringExtra("EXTRA_BARCODE_DECODING_DATA"); OnBroadcastReceive(m_V8Object, event, type, data); break; case NEW_KEY_UP: event = "NewKeyUP"; type = "key"; data = intent.getStringExtra(KEY_CODE); OnBroadcastReceive(m_V8Object, event, type, data); } } } }; IntentFilter filter = new IntentFilter(); filter.addAction("com.xcheng.scanner.action.BARCODE_DECODING_BROADCAST"); filter.addAction(NEW_KEY_UP); m_Activity.registerReceiver(m_Receiver, filter); } }
ุนุงุฏ ุงูุขู ุฅูู ุฅุฑุณุงู ุงูุจูุงูุงุช ูุฏููุง ูู 1C. ุชููู
OnBroadcastReceive
ุจุงุณุชุฏุนุงุก
extern "C" JNIEXPORT void JNICALL Java_org_innovait_atolsmartliteutils_MainApp_OnBroadcastReceive(JNIEnv* env, jclass jClass, jlong pObject, jstring j_event, jstring j_type, jstring j_data)
jstring j_event, jstring j_type, jstring j_data
ูุฐู ูู ุงูู
ุชุบูุฑุงุช ุงูุชู ุฃููู
jstring j_event, jstring j_type, jstring j_data
ุ ุงูุญุฏุซ ุ ููุน CC ุ ู CC ููุณูุง. ูุฏ ูููู ููุงู ุจูุงูุงุช ุฃุฎุฑู.
Java_org_innovait_atolsmartliteutils_MainApp_OnBroadcastReceive extern "C" JNIEXPORT void JNICALL Java_org_innovait_atolsmartliteutils_MainApp_OnBroadcastReceive(JNIEnv* env, jclass jClass, jlong pObject, jstring j_event, jstring j_type, jstring j_data) { IAddInDefBaseEx *pAddIn = (IAddInDefBaseEx *) pObject; if (pAddIn != nullptr) { std::wstring ws_event =ToWStringJni(j_event); std::wstring ws_type = ToWStringJni(j_type); std::wstring ws_data = ToWStringJni(j_data); std::wstring obj_data{}; obj_data = L"{\"type\": \"" + ws_type + L"\", \"data\": \"" + ws_data + L"\"}"; WcharWrapper wdata((wchar_t*)obj_data.c_str()); WcharWrapper wmsg((wchar_t*)ws_event.c_str()); pAddIn->ExternalEvent(s_EventSource, wmsg, wdata); } }
std::wstring ws_event =ToWStringJni(j_event);
ุจุงุณุชุฎุฏุงู
ูุฐุง ุ ูุชุฑุฌู
ุงูุณูุณูุฉ ู
ู
jstring
ุฅูู
std::wstring
ุ ูู
ู ุซู
ูููู
WcharWrapper wmsg((wchar_t*)ws_event.c_str());
ุฃุฌู 1C
WcharWrapper wmsg((wchar_t*)ws_event.c_str());
ุดูุฑุง ููุดุฎุต ุงูุฐูู ููุธููุฉ ุงูุชุญููู. ุงููุธููุฉ ุงูุซุงููุฉ ุชุฃุชู ู
ู ุงูู
ุฑุจุน ูู ุงูู
ุซุงู ู
ู 1C.
ุงูู
ูุณุฏ ุงูุนููุงู std::wstring ToWStringJni(jstring jstr) { std::wstring ret; if (jstr) { JNIEnv* env = getJniEnv(); const jchar* jChars = env->GetStringChars(jstr, NULL); jsize jLen = env->GetStringLength(jstr); ret.assign(jChars, jChars + jLen); env->ReleaseStringChars(jstr, jChars); } return ret; }
ุจุงููุณุจุฉ ูุฃููุฆู ุงูุฐูู ูุง ูุฑูุฏูู ุชุซุจูุช ูู ุดูุก ูุชุฌู
ูุนู ุจุฃููุณูู
. ูููุง ุงูุฅุตุฏุงุฑุงุช ุงูููุงุฆูุฉ.
ูุฐุง ูู ุดูุก. ูู ุงูุชุธุงุฑ ุงูุชุนูููุงุช.