@Gfd

Не могу понять, как работает action_send в android?

Написал такое activity:

public class SendWelcomeActivity extends ActionBarActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            Intent intent = getIntent();
            String action = intent.getAction();
            String type = intent.getType();
    
            if (Intent.ACTION_SEND.equals(action) && type != null) {
                if ("*/*".equals(type)) {
                    try {
                        Person person = (Person) intent.getSerializableExtra(Intent.EXTRA_STREAM);
                        SerializationAndDeserialization.writeToFile(person.getName(), person, this);
                        saveName(person.getName());
                    } catch (Exception e) {
                        Toast.makeText(this, "Unknown format of file!", Toast.LENGTH_LONG).show();
                    }
                }
            }
    
            finish();
        }
    
        private void saveName(String name) {
            InformationAboutPersons inf = new InformationAboutPersons();
            String[] names = inf.getNames(this);
            if (names != null) {
                for (int i = 0; i < names.length; i++) {
                    if (names[i].equals(name)) {
                        return;
                    }
                }
                inf.addNamePerson(name, this);
            } else {
                inf.addNamePerson(name, this);
            }
        }
    }


Вот она в манифесте:

<activity android:name=".Controller.SendWelcomeActivity">
                <intent-filter>
                    <action android:name="android.intent.action.SEND" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <data android:mimeType="*/*" />
                </intent-filter>
            </activity>


Она должна открывать файл, в котором находится объект, и сохранять его.

Вот как я отправляю этот файл по email:

try {
                String FILENAME = "filesLifeOrganizationRe" + mPerson.getName() + ".person";
    
                File imageFile = getFileStreamPath(FILENAME);
                Uri imageUri = Uri.fromFile(imageFile);
    
                final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
                emailIntent.setType("*/*");
                emailIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
    
                this.startActivityForResult(Intent.createChooser(emailIntent, "Send mail..."), 1);
            } catch (Exception e) {
                e.printStackTrace();
            }


Отправка файла вроде работает, но почему то когда я нажимаю на файл в gmail, то он говорит, что этот файл не поддерживается установленными приложениями. Да и само открытие файла не работает, person = null. Не знаю, как все сделать правильно
PS: я новичок в программировании
  • Вопрос задан
  • 640 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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