我有以下问题:
我必须使用 BT 打印机 SDK 中的以下功能:
StarIOPort port = null;
byte[] texttoprint = new byte[]{0x1b, 0x40, 0x1b,0x74,0x0D,(byte) 0x91,(byte) 0x92,(byte) 0x93,(byte) 0x94,(byte) 0x95,(byte) 0x96,(byte) 0x97,(byte) 0x98,(byte) 0x99,0x0A,0x0A,0x0A,0x0A,0x0A};
try
{
port = StarIOPort.getPort(portName, portSettings, 10000, context);
port.writePort(textToPrint, 0, textToPrint.length);
port.writePort(new byte[] {0x0a}, 0, 1);
}
catch (StarIOPortException e)
{
Builder dialog = new AlertDialog.Builder(context);
dialog.setNegativeButton("Ok", null);
AlertDialog alert = dialog.create();
alert.setTitle("Failure");
alert.setMessage("Failed to connect to printer");
alert.show();
}
除了语境,我什么都懂。
制造商提到
* @param context - Activity for displaying messages to the user
我如何使用上述功能,因为在我使用它的方式中,我没有收到任何错误,也没有收到任何警告消息。
最佳答案
要显示警报(或任何其他 UI 组件),您需要 Activity 上下文,没错。如果此时没有任何 Activity 正在运行,则无法显示 Alert。
但是你可以显示Toast,使用类的静态方法Toast :
public static Toast makeText(Context context, CharSequence text, int duration);
将应用程序上下文作为第一个参数传递给它。
应用程序上下文在您的应用程序运行时始终可用,即使此时没有运行 UI 也是如此。您可以通过从上下文中调用 getApplicationContext() 方法来获取它。如果您根本没有任何上下文,您始终可以使用 YourAppClass(public class YourAppClass extends Application ),它在您的 list 中的 xml 标记下定义。 最常见的做法是使 YourAppClass 成为单例,并且它始终在您应用中的任何代码点可用。
关于java - android java上下文解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12248060/