C# 从Xamarin调用异步android mag stripe库
如果解释得不好,很抱歉。我正在开发一个xamarin应用程序,我们的客户用它来扫描条形码。iOS和Android都有前端。这部分工作正常,但我正在尝试添加代码,以便在某些android设备上访问mag stripe阅读器。我可以检测代码中是否有正确的设备。不幸的是,mag stripe阅读器代码是异步的,因此换句话说,它有一个等待滑动的侦听器。我有实现磁条阅读器功能的示例android应用程序,但我无法集成到Xamarin应用程序中。C# 从Xamarin调用异步android mag stripe库,c#,android,xamarin,C#,Android,Xamarin,如果解释得不好,很抱歉。我正在开发一个xamarin应用程序,我们的客户用它来扫描条形码。iOS和Android都有前端。这部分工作正常,但我正在尝试添加代码,以便在某些android设备上访问mag stripe阅读器。我可以检测代码中是否有正确的设备。不幸的是,mag stripe阅读器代码是异步的,因此换句话说,它有一个等待滑动的侦听器。我有实现磁条阅读器功能的示例android应用程序,但我无法集成到Xamarin应用程序中。 我试着打电话给完整的应用程序 protected o
我试着打电话给完整的应用程序
protected override void OnCreate(Bundle savedInstanceState)
{
var intent = new Intent(Xamarin.Forms.Forms.Context, typeof(JanamScanActivity));
StartActivityForResult(intent, 1);
}
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Android.App.Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
}
但它不会返回我需要的结果,而且我相信它无论如何都太慢了。扫描和磁条读取是在具有do while循环的任务中完成的。当前扫描程序代码正在使用片段
StartScanning();
((MainApplication)Activity.Application).scannerFragment.ResumeAnalysis();
我有没有办法创建一个没有用户界面的android库,我可以从Xamarin调用它。目前,库代码在我没有runOnUIThread时会抱怨,因为它需要一个活动
private void postMSRStateChange(final EngineState state)
{
runOnUiThread(new Runnable(){
@Override
public void run() {
handleMSRStateChange(state);
}
});
}
protected MsrResultCallback mCallback = new MsrResultCallback() {
@Override
public void onResult(final int cmd, final int status) {
runOnUiThread(new Runnable() {
@Override
public void run() {
System.out.println("onResult");
// MSR engine is on another thread. When we get the callback, post the
// event to our own message queue then handle the event in the main thread.
// Not doing so can/will cause application crash.
handleSetResult(cmd, status);
}
});
}
};
对不起,我把这弄糊涂了 我现在要去另一个方向。我正在制作一个在后台运行的独立应用程序。感谢所有看过这个的人 看来我要把它变成一个单独的android服务,让它更容易实现。感谢所有看过这个的人。所以我不知道这是否意味着你现在解决了你的问题?如果是,请在这里分享您的解决方案,并将您的回答标记为答案,谢谢。不完全如此,但我现在正朝着不同的方向前进。所以如果你是这么建议的话,我想我可以回答我的问题。