私の問題のほとんどは例やサンプルなどで解決されるため、ここに来ることはめったにありません。私は悪くありません。今、私の問題は、何が起こっているのか理解できないことです。このプリンターを購入し、SDK を入手しました。SDK をロードしたら、接続を押す必要があります。ペアリングし、ピン (0000) を打ち込みます。完了すると、テスト ボタンが表示されます。文字列ectを出力します。
私がやりたいことは、プリンターに接続します(自動またはピンを使用して何でも)次に「次のアクティビティ」を押して、次のアクティビティでBluetoothプリンターで好きなように印刷できるようにします。しかし、次のアクティビティが読み込まれると、接続が閉じられ、デバイスを何度も何度もペアリングする必要があるアクティビティに接続メソッドを作成しない限り、プリンターを使用できません。これが私が入手したSDKです。getbondeddevices を使用してみましたが、私は十分に賢いとは思いません. たぶん誰かがプリンターがどのように接続されているか、そしてアクティビティ全体でどのように共有できるかを見ることができますか??
たぶん、デバイスをペアリングして次のアクティビティで使用する方法に関するチュートリアルさえあります...どんな助けも素晴らしいでしょう
public class PrintTestAcitvity extends Activity {
// btOperation bo = new btOperation();
//// ¶ÔÆ뷽ʽ
/**
* printing text align left
*/
public static final int AT_LEFT = 0;
/**
* printing text align center
*/
public static final int AT_CENTER = 1;
/**
* printing text align right
*/
public static final int AT_RIGHT = 2;
private static final String GetBondedDevice = null;
// public String curentDateTimeString = DateFormat.getDateTimeInstance().format(new Date());
public static String curentDateTimeString() {
SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//dd/MM/yyyy
Date now = new Date();
String strDate = sdfDate.format(now);
return strDate;
}
private Button btConnect = null;
private Button btCancel = null;
private Button asciiSend = null;
private Button graphicSend = null;
private regoPrinter mobileprint = null;
private boolean bConnect = true;
private TextView textTitle = null;
// private EditText portName;
private int iObjectCode;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btConnect = (Button)findViewById(R.id.connect);
btCancel = (Button)findViewById(R.id.cancel);
asciiSend = (Button)findViewById(R.id.asc_send);
graphicSend = (Button)findViewById(R.id.gra_send);
textTitle = (TextView)findViewById(R.id.title);
// portName = (EditText)findViewById(R.id.portName);
iObjectCode = 0;
mobileprint = new regoPrinter();
asciiSend.setEnabled(false);
graphicSend.setEnabled(false);
btConnect.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String strName = "MPT-II"; // portName.getText().toString();
if(strName.length() == 0)
{
Toast.makeText(PrintTestAcitvity.this, "Error:port name empty", Toast.LENGTH_SHORT).show();
return;
}
if(bConnect)
{
try
{
mobileprint.CON_LnitPrintLib();
iObjectCode = mobileprint.CON_ConnectDevice(strName);
}
catch(printLibException e)
{
Toast.makeText(PrintTestAcitvity.this, e.GetMessage(),
Toast.LENGTH_LONG).show();
}
finally
{
if(iObjectCode != 0)
{
// connect succeed
textTitle.setText(strName + PrintTestAcitvity.this.getString(R.string.consucceed));
btConnect.setText(R.string.disconnect);
bConnect = false;
asciiSend.setEnabled(true);
graphicSend.setEnabled(true);
}
}
}
else
{
textTitle.setText(strName + PrintTestAcitvity.this.getString(R.string.disconnect));
asciiSend.setEnabled(false);
graphicSend.setEnabled(false);
try {
mobileprint.CON_CloseConnect(iObjectCode);
} catch (printLibException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
bConnect = true;
btConnect.setText(R.string.connect);
}
}
});
btCancel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(!bConnect)
{
try {
mobileprint.CON_CloseConnect(iObjectCode);
} catch (printLibException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
mobileprint.CON_FreePrintLib();
finish();
return;
}
});
asciiSend.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
// mobileprint.CON_PageStart(iObjectCode, 576, 0) &&
if(mobileprint.ASCII_QueryPrinterStatus(iObjectCode))
{
//Çå³ý´òÓ¡»ú»º³å
mobileprint.ASCII_Reset(iObjectCode);
//´òÓ¡LogoͼƬ£¬ÏȽ«Í¼Æ¬ÏÂÔØÖÁ´òÓ¡»úÖÐÔÙÖ´Ðд˺¯Êý
//mobileprint.PrintFlashPic(1, 0);
//´òÓ¡title
mobileprint.ASCII_AlignType(iObjectCode, 1);
mobileprint.ASCII_FormatString(iObjectCode,false,false,true,false,false);
mobileprint.ASCII_SendString(iObjectCode, "Plate:" +" " + "ABCD123", "gb2312");
// mobileprint.ASCII_PrintCRLF(iObjectCode, 2);
mobileprint.ASCII_FeedLines(iObjectCode, 1);
mobileprint.ASCII_Reset(iObjectCode);
mobileprint.ASCII_PrintCRLF(iObjectCode, 2);
mobileprint.CON_PageEnd(iObjectCode);
}
else
{
Toast.makeText(PrintTestAcitvity.this, "Printer status error",
Toast.LENGTH_LONG).show();
}
} catch (printLibException e) {
// TODO Auto-generated catch block
Toast.makeText(PrintTestAcitvity.this, e.GetMessage(),
Toast.LENGTH_LONG).show();
}
}
});
graphicSend.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try {
if(mobileprint.CON_PageStart(iObjectCode, 576, 450) && mobileprint.ASCII_QueryPrinterStatus(iObjectCode))
{
//Çå³ý´òÓ¡»ú»º³å
mobileprint.ASCII_Reset(iObjectCode);
mobileprint.DRAW_Line(iObjectCode,0, 1, 575, 1,3);
mobileprint.DRAW_Line(iObjectCode,0, 1, 0, 450,3);
mobileprint.DRAW_Line(iObjectCode,575, 1, 575, 450,3);
mobileprint.DRAW_Line(iObjectCode,0, 450, 575, 450,3);
mobileprint.DRAW_Line(iObjectCode,465, 1, 465, 450,1);
mobileprint.DRAW_Rectangle(iObjectCode, 0, 0, 80, 50, 1, true);
/* mobileprint.DRAW_Text(iObjectCode, 30, 80, "ÉϺ£¿ì½Ý¿ìÔËÓÐÏÞ¹«Ë¾ ", 40);
mobileprint.DRAW_Text(iObjectCode,90, 185, "ÉϺ£ -> ±±¾©", 35);
mobileprint.DRAW_Text(iObjectCode,80, 245, "(ÉϺ£±±Ç๫·°ì)", 20);
mobileprint.DRAW_Text(iObjectCode,310, 245, "(»ðʮ·վ)", 20);
mobileprint.DRAW_Text(iObjectCode,20, 305, "20112-02100100-0101-2112-10", 30);
mobileprint.DRAW_Code128(iObjectCode, 60, 350, 1, 60, "754432112-2");
mobileprint.DRAW_CreateRotalBlock(iObjectCode,476, 0, 450,100, 2);//(0.0) Ϊ×óÉϽǵľØÐÎ
mobileprint.DRAW_Code128(iObjectCode, 40, 5, 1, 60, "754432112-2");
*/
mobileprint.CON_PageEnd(iObjectCode);
}
else
{
Toast.makeText(PrintTestAcitvity.this, "Printer status error",
Toast.LENGTH_LONG).show();
}
} catch (printLibException e) {
// TODO Auto-generated catch block
Toast.makeText(PrintTestAcitvity.this, e.GetMessage(),
Toast.LENGTH_LONG).show();
}
}
});
}
}