Java Phonegap(Android):连接并打印到Bixolon BR200
我想打印到BIXOLON BR200(蓝牙打印机) 我有一个包含文本和图像的简单页面,我需要打印当前页面或类似页面,但我不知道如何在Android中使用PhoneGap打印(我也在使用jQuery mobile)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 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);
}捕获(例外情况除外){