Как я могу создать и запустить Intent?

Мне было интересно, как я могу создать и запустить намерение, используя это:

"qsrtech.posprintdriver/.printservice"

Я загрузил приложение POS Printer Driver (ESC) (это приложение, к которому я пытаюсь получить доступ).

Я пробовал это:

        String PrintPage = "qsrtech.posprintdriver/.printservice";
        Intent intent = new Intent(Intent.ACTION_MAIN);             
        intent.setComponent(ComponentName.unflattenFromString(PrintPage));             
        intent.addCategory(Intent.CATEGORY_LAUNCHER );             
        startActivity(intent); 

Однако я получаю сообщение об ошибке: «Не найдено действий для обработки этого намерения».

Мне было интересно, могу ли я что-нибудь сделать, чтобы получить доступ к этому намерению? Дело в том, что я не уверен, обращаюсь ли я к действию или фоновой службе (возможно, к службе намерений?) из другого приложения.

Вот ссылка, которая объясняет больше об этом намерении. http://www.qsrtechnologies.com/aboutposdriver.html


person Kofi    schedule 03.06.2013    source источник
comment
попробуйте "qsrtech.posprintdriver/qsrtech.posprintdriver.printservice" в качестве строки компонента, чтобы разгладить. Также похоже, что вы не добавляете никаких данных, поэтому я сомневаюсь, что что-либо будет напечатано, вы, вероятно, захотите включить putExtra("Data", somethingToPrint)   -  person FoamyGuy    schedule 04.06.2013
comment
Спасибо FoamyGuy за быстрый ответ. Итак, ваш ответ помог мне избавиться от ошибки «Нет активности», чтобы обработать эту ошибку намерения. Однако у меня нет возможности найти явный класс, вы объявили это действие в своем файле androidmanifest.xml? ошибка. Я добавил: ‹activity android:name=qsrtech.posprintdriver.printservice‹/activity› в мой файл androidmanifest.xml. У меня нет этого класса Java в моем проекте (потому что я предполагаю, что он находится в другом приложении). Любые предложения о том, как я могу решить эту проблему? Спасибо еще раз.   -  person Kofi    schedule 04.06.2013
comment
Вы можете попробовать решения, опубликованные здесь: stackoverflow. ком/вопросы/5940456/   -  person Torben Kohlmeier    schedule 04.06.2013


Ответы (2)


Вы можете попробовать с этим:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra("Data", "Test printer\n\n");
sendIntent.setComponent(new ComponentName("qsrtech.posprintdriver","qsrtech.posprintdriver.printservice"));
startService(sendIntent);
person Chanry.C    schedule 22.04.2014

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra("Data", "Test printer\n\n");
sendIntent.setComponent(new ComponentName("qsrtech.posprintdriver","qsrtech.posprintdriver.printservice"));
startService(sendIntent); 

Работал как шарм здесь.

person Ehsan    schedule 10.02.2015
comment
Да, я просто хотел подтвердить, что указанный код работает. Во всяком случае, я мог печатать только символы, а не код ESC. Я думаю, потому что драйвер ESC POS Android не является бесплатным и должен быть приобретен. это ? - person Ehsan; 11.02.2015