Java Phonegap(Android):连接并打印到Bixolon BR200

Java Phonegap(Android):连接并打印到Bixolon BR200,java,android,jquery-mobile,cordova,printing,Java,Android,Jquery Mobile,Cordova,Printing,我想打印到BIXOLON BR200(蓝牙打印机) 我有一个包含文本和图像的简单页面,我需要打印当前页面或类似页面,但我不知道如何在Android中使用PhoneGap打印(我也在使用jQuery mobile) 有人能帮我吗?我使用BIXOLON Android sdk和构建插件修复了它。这是我的代码: ..... public PluginResult execute(String action, JSONArray args, String callbackId) {

我想打印到BIXOLON BR200(蓝牙打印机)

我有一个包含文本和图像的简单页面,我需要打印当前页面或类似页面,但我不知道如何在Android中使用PhoneGap打印(我也在使用jQuery mobile)


有人能帮我吗?

我使用BIXOLON Android sdk和构建插件修复了它。这是我的代码:

.....


 public PluginResult execute(String action, JSONArray args, String callbackId) {
        PluginResult result = null;
        context = this.ctx;

         // Register for broadcasts when a device is discovered
        IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
        context.registerReceiver(mReceiver, filter);


        // Register for broadcasts when discovery starts
        filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
        context.registerReceiver(mReceiver, filter);


        // Register for broadcasts when discovery has finished
        filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
        context.registerReceiver(mReceiver, filter);  


        // Register for broadcasts when connectivity state changes
        filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
        context.registerReceiver(mReceiver, filter);  


        Looper.prepare();
        btadapter= BluetoothAdapter.getDefaultAdapter();
        found_devices=new ArrayList<BluetoothDevice>(); 

        try {

            try {                           
                Log.d("BluetoothPlugin", "We're in "+ACTION_ENABLE_BT);

                boolean enabled = false;

                Log.d("BluetoothPlugin", "Enabling Bluetooth...");

                if (btadapter.isEnabled())
                {
                  enabled = true;
                } else {
                  enabled = btadapter.enable();
                }

                Log.d("BluetoothPlugin - "+ACTION_ENABLE_BT, "Returning "+ "Result: "+enabled);
                result = new PluginResult(Status.OK, enabled);
            } catch (Exception Ex) {
                Log.d("BluetoothPlugin - "+ACTION_ENABLE_BT, "Got Exception "+ Ex.getMessage());
                result = new PluginResult(Status.ERROR);
            }

            CheckGC("onCreate_Start");
            pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
            wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
            wl.acquire();
            CheckGC("onCreate_End");


            CheckGC("Connect_Start");
            mBxlService = new BxlService();

            int returnValue;

            byte[] PINCode = { 0x30, 0x30, 0x30, 0x30 }; // '0'
            String bluetoothName = "SPP-R200";
            returnValue = mBxlService.SetBluetoothInterface(true, 2, PINCode, bluetoothName);

            if (mBxlService.Connect() == 0) {
                System.out.println("Conectado");
            Log.d("BixolonPlugin", "Conectado");
                conn = true;

                CheckGC("PrintText_Start");

                returnValue = mBxlService.GetStatus();

                if (returnValue == BxlService.BXL_SUCCESS) {

                    String text = args.getString(0);

                    returnValue = mBxlService.PrintText(text, BxlService.BXL_ALIGNMENT_LEFT,
                            BxlService.BXL_FT_DEFAULT, BxlService.BXL_TS_0WIDTH | BxlService.BXL_TS_0HEIGHT);

                    returnValue = mBxlService.LineFeed(5, true);
                }

            } else {
                System.out.println("NO Conectado");
            Log.d("BixolonPlugin", "NO Conectado");
                conn = false;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


        if (mBxlService != null) {
            mBxlService.Disconnect();
            mBxlService = null;
        }
        wl.release();
        if (DeviceMoldel == HTC_Desire) {
            Runtime.getRuntime().exit(0);
        }
        CheckGC("onDestroy_End");

        result = new PluginResult(Status.OK,false);

        return result;
    }
.......
。。。。。
公共PluginResult执行(字符串操作、JSONArray参数、字符串回调ID){
PluginResult结果=null;
context=this.ctx;
//在发现设备时注册广播
IntentFilter筛选器=新的IntentFilter(BluetoothDevice.ACTION\u已找到);
registerReceiver(mReceiver,filter);
//在发现启动时注册广播
筛选器=新的IntentFilter(BluetoothAdapter.ACTION\u DISCOVERY\u已启动);
registerReceiver(mReceiver,filter);
//在发现完成后注册广播
过滤器=新的IntentFilter(BluetoothAdapter.ACTION\u DISCOVERY\u FINISHED);
registerReceiver(mReceiver,filter);
//连接状态更改时注册广播
filter=新的IntentFilter(ConnectivityManager.CONNECTIVITY\u操作);
registerReceiver(mReceiver,filter);
Looper.prepare();
btadapter=BluetoothAdapter.getDefaultAdapter();
找到_devices=new ArrayList();
试一试{
试试{
Log.d(“BluetoothPlugin”,“我们在”+行动\启用\ BT);
布尔启用=假;
Log.d(“蓝牙插件”,“启用蓝牙…”);
if(btadapter.isEnabled())
{
启用=真;
}否则{
enabled=btadapter.enable();
}
Log.d(“BluetoothPlugin-”+ACTION\u ENABLE\u BT,“返回”+”结果:“+enabled”);
结果=新的PluginResult(Status.OK,enabled);
}捕获(例外情况除外){
Log.d(“BluetoothPlugin-”+ACTION\u ENABLE\u BT,“Got Exception”+Ex.getMessage());
结果=新的PluginResult(Status.ERROR);
}
CheckGC(“onCreate_Start”);
pm=(PowerManager)context.getSystemService(context.POWER\u服务);
wl=pm.newWakeLock(PowerManager.FULL_WAKE_LOCK,“我的标签”);
wl.acquire();
CheckGC(“onCreate_End”);
检查GC(“连接启动”);
mBxlService=新的BxlService();
返回值;
字节[]PINCode={0x30,0x30,0x30,0x30};//“0”
字符串bluetoothName=“SPP-R200”;
returnValue=mBxlService.SetBluetoothInterface(true,2,PINCode,bluetoothName);
if(mBxlService.Connect()==0){
System.out.println(“Conectado”);
Log.d(“BixolonPlugin”、“Conectado”);
conn=真;
检查GC(“打印文本_开始”);
returnValue=mBxlService.GetStatus();
if(returnValue==BxlService.BXL_SUCCESS){
String text=args.getString(0);
returnValue=mBxlService.PrintText(文本,BxlService.BXL\u左对齐,
BxlService.BXL_FT_默认值,BxlService.BXL_TS_0宽度| BxlService.BXL_TS_0高度);
returnValue=mBxlService.LineFeed(5,true);
}
}否则{
System.out.println(“无连接”);
Log.d(“BixolonPlugin”,“NO Conectado”);
conn=假;
}
}捕获(例外e){
e、 printStackTrace();
}
if(mBxlService!=null){
mBxlService.Disconnect();
mBxlService=null;
}
wl.释放();
如果(DeviceModel==HTC_Desire){
Runtime.getRuntime().exit(0);
}
CheckGC(“onDestroy_End”);
结果=新插件result(状态:OK,false);
返回结果;
}
.......

如果您需要完整的代码,请与我联系。

我使用BIXOLON Android sdk和构建插件修复了它。这是我的代码:

.....


 public PluginResult execute(String action, JSONArray args, String callbackId) {
        PluginResult result = null;
        context = this.ctx;

         // Register for broadcasts when a device is discovered
        IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
        context.registerReceiver(mReceiver, filter);


        // Register for broadcasts when discovery starts
        filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
        context.registerReceiver(mReceiver, filter);


        // Register for broadcasts when discovery has finished
        filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
        context.registerReceiver(mReceiver, filter);  


        // Register for broadcasts when connectivity state changes
        filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
        context.registerReceiver(mReceiver, filter);  


        Looper.prepare();
        btadapter= BluetoothAdapter.getDefaultAdapter();
        found_devices=new ArrayList<BluetoothDevice>(); 

        try {

            try {                           
                Log.d("BluetoothPlugin", "We're in "+ACTION_ENABLE_BT);

                boolean enabled = false;

                Log.d("BluetoothPlugin", "Enabling Bluetooth...");

                if (btadapter.isEnabled())
                {
                  enabled = true;
                } else {
                  enabled = btadapter.enable();
                }

                Log.d("BluetoothPlugin - "+ACTION_ENABLE_BT, "Returning "+ "Result: "+enabled);
                result = new PluginResult(Status.OK, enabled);
            } catch (Exception Ex) {
                Log.d("BluetoothPlugin - "+ACTION_ENABLE_BT, "Got Exception "+ Ex.getMessage());
                result = new PluginResult(Status.ERROR);
            }

            CheckGC("onCreate_Start");
            pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
            wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
            wl.acquire();
            CheckGC("onCreate_End");


            CheckGC("Connect_Start");
            mBxlService = new BxlService();

            int returnValue;

            byte[] PINCode = { 0x30, 0x30, 0x30, 0x30 }; // '0'
            String bluetoothName = "SPP-R200";
            returnValue = mBxlService.SetBluetoothInterface(true, 2, PINCode, bluetoothName);

            if (mBxlService.Connect() == 0) {
                System.out.println("Conectado");
            Log.d("BixolonPlugin", "Conectado");
                conn = true;

                CheckGC("PrintText_Start");

                returnValue = mBxlService.GetStatus();

                if (returnValue == BxlService.BXL_SUCCESS) {

                    String text = args.getString(0);

                    returnValue = mBxlService.PrintText(text, BxlService.BXL_ALIGNMENT_LEFT,
                            BxlService.BXL_FT_DEFAULT, BxlService.BXL_TS_0WIDTH | BxlService.BXL_TS_0HEIGHT);

                    returnValue = mBxlService.LineFeed(5, true);
                }

            } else {
                System.out.println("NO Conectado");
            Log.d("BixolonPlugin", "NO Conectado");
                conn = false;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


        if (mBxlService != null) {
            mBxlService.Disconnect();
            mBxlService = null;
        }
        wl.release();
        if (DeviceMoldel == HTC_Desire) {
            Runtime.getRuntime().exit(0);
        }
        CheckGC("onDestroy_End");

        result = new PluginResult(Status.OK,false);

        return result;
    }
.......
。。。。。
公共PluginResult执行(字符串操作、JSONArray参数、字符串回调ID){
PluginResult结果=null;
context=this.ctx;
//在发现设备时注册广播
IntentFilter筛选器=新的IntentFilter(BluetoothDevice.ACTION\u已找到);
registerReceiver(mReceiver,filter);
//在发现启动时注册广播
筛选器=新的IntentFilter(BluetoothAdapter.ACTION\u DISCOVERY\u已启动);
registerReceiver(mReceiver,filter);
//在发现完成后注册广播
过滤器=新的IntentFilter(BluetoothAdapter.ACTION\u DISCOVERY\u FINISHED);
registerReceiver(mReceiver,filter);
//连接状态更改时注册广播
filter=新的IntentFilter(ConnectivityManager.CONNECTIVITY\u操作);
registerReceiver(mReceiver,filter);
Looper.prepare();
btadapter=BluetoothAdapter.getDefaultAdapter();
找到_devices=new ArrayList();
试一试{
试试{
Log.d(“BluetoothPlugin”,“我们在”+行动\启用\ BT);
布尔启用=假;
Log.d(“蓝牙插件”,“启用蓝牙…”);
if(btadapter.isEnabled())
{
启用=真;
}否则{
enabled=btadapter.enable();
}
Log.d(“BluetoothPlugin-”+ACTION\u ENABLE\u BT,“返回”+”结果:“+enabled”);
结果=新的PluginResult(Status.OK,enabled);
}捕获(例外情况除外){