Как настроить намерение поделиться в Android?

Значок, отображаемый при запуске исполняемого файла в Windows, поступает из самого исполняемого файла. Чтобы связать значок с вашим приложением, вам нужно указать значок при создании с помощью pyinstaller.exe, передав параметр --icon. Например:

pyinstaller.exe --onefile --windowed --name myapps --icon=icon.ico opc.py

Обратите внимание, что в отличие от setWindowIcon() файл значка должен находиться в формате .ico, поэтому вам сначала нужно будет преобразовать его из .png.

Если вы хотите использовать вызов PyQt для установки значка, вам необходимо связать файл значка с исполняемым файлом, что можно сделать с помощью файла спецификации PyInstaller . Пошаговое руководство по созданию и модификации файла spec находится в предыдущем ответе .

27
задан Zak 26 July 2011 в 08:44
поделиться

1 ответ

Вы можете получить все почтовые клиенты, используя ACTION_SENDTO, например

        Intent getMailClients = new Intent(Intent.ACTION_SENDTO);
        getMailClients.setData(Uri.parse("mailto:"));
        final PackageManager pm = this.getPackageManager();
        final List<ResolveInfo> emailsClients = pm.queryIntentActivities(getMailClients, 0);

        if (emailsClients.size() == 0) {
            Toast.makeText(this, "There are no email clients installed", Toast.LENGTH_LONG).show();
            return;
        }

, а затем создать свой собственный выбор (диалог со списком найденных приложений). Когда пользователь нажимает на элемент, вы можете сделать что-то вроде этого.

        Intent sendMailIntent = new Intent(Intent.ACTION_SEND);
        sendMailIntent.setType(some type like text/plain or other you need);
        ...
        there you can set SUBJECT,EMAILTO, attach files
        ...
        final List<ResolveInfo> matches = pm.queryIntentActivities(sendMailIntent, 0);
        ResolveInfo sendingProgramm = null;
        for (final ResolveInfo info : matches) {
            if (info.activityInfo.packageName.equals(clickedResolveInfo.activityInfo.packageName)) {
                sendingProgramm = info;
                sendMailIntent
                        .setClassName(sendingProgramm.activityInfo.packageName, sendingProgramm.activityInfo.name);
                break;
            }
        }
        startActivity(sendMailIntent);

Может быть, это поможет вам.

1
ответ дан Raman Branavitski 26 July 2011 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: