Я пытался исправить эту проблему в течение нескольких дней и все равно не смог ее исправить ... Пожалуйста, кто-то может мне помочь.Библиотека Android SDK Starmicronics не работает
В настоящее время я пытаюсь разработать приложения, которые выполняют ту же функцию с тем, что делает starmicronic. И вы можете найти SDK ниже.
http://www.starmicronics.com/support/ZipFile.aspx?sat2=195
В начале я просто скопировать Jar библиотеки StarIOPort3.1.Jar в рабочее пространство, а импорт в Main.java
Я попытался скопировать эту функцию в мой основной класс, но в сначала я пропустил, чтобы добавить разрешение Интернета в настройке манифеста. После добавления разрешения на Интернет я все еще получаю exeception времени выполнения E/AndroidRuntime (776): java.lang.IllegalStateException: Не удалось выполнить метод действия.
Но он отлично работает с Star SDK ... но не в моей версии.
public void PortDiscovery(View view)
{
List<PortInfo> BTPortList;
List<PortInfo> TCPPortList;
final EditText editPortName;
final ArrayList<PortInfo> arrayDiscovery;
ArrayList<String> arrayPortName;
arrayDiscovery = new ArrayList<PortInfo>();
arrayPortName = new ArrayList<String>();
try {
BTPortList = StarIOPort.searchPrinter("BT:");
TCPPortList = StarIOPort.searchPrinter("TCP:");
for (PortInfo portInfo : BTPortList) {
arrayDiscovery.add(portInfo);
}
for (PortInfo portInfo : TCPPortList) {
arrayDiscovery.add(portInfo);
}
arrayPortName = new ArrayList<String>();
for(PortInfo discovery : arrayDiscovery)
{
String portName;
portName = discovery.getPortName();
if(discovery.getMacAddress().equals("") == false)
{
portName += "\n - " + discovery.getMacAddress();
if(discovery.getModelName().equals("") == false)
{
portName += "\n - " + discovery.getModelName();
}
}
arrayPortName.add(portName);
}
} catch (StarIOPortException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
editPortName = new EditText(this);
new AlertDialog.Builder(this)
.setIcon(R.drawable.icon)
.setTitle("Please Select IP Address or Input Port Name")
.setView(editPortName)
.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int button)
{
EditText portNameField = (EditText)findViewById(R.id.editText_PortName);
portNameField.setText(editPortName.getText());
SharedPreferences pref = getSharedPreferences("pref", MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE);
Editor editor = pref.edit();
editor.putString("portName", portNameField.getText().toString());
editor.commit();
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int button)
{
}
})
.setItems(arrayPortName.toArray(new String[0]), new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int select)
{
EditText portNameField = (EditText)findViewById(R.id.editText_PortName);
portNameField.setText(arrayDiscovery.get(select).getPortName());
SharedPreferences pref = getSharedPreferences("pref", MODE_WORLD_READABLE | MODE_WORLD_WRITEABLE);
Editor editor = pref.edit();
editor.putString("portName", portNameField.getText().toString());
editor.commit();
}
})
.show();
}
Я протестировал с некоторым протоколом, программа даст ошибку во время выполнения метода BTPortList = StarIOPort.searchPrinter ("BT:"); TCPPortList = StarIOPort.searchPrinter ("TCP:"); – Frank
Кроме того, я попытался запустить в отдельном проекте, это не сработало. Но если я создам его в том же проекте (StarSDK) в другом классе, и он работает. Я думаю, что это связано с проблемой конфигурации, но производитель не дал понять. Например, производитель не включил настройку разрешения Интернета в файле manifest.xml. Таким образом, сможет ли кто-нибудь помочь в этом? – Frank
Можете ли вы дать нам немного больше информации? Где встречается незаконноеStateException? У вас есть стек? –