Как отправить файл а не текст?

Для отправки файла в Android вы можете использовать различные подходы, в зависимости от того, куда и как вы хотите отправить файл. Ниже приведены несколько возможных способов:

1. Использование Intent.ACTION_SEND:
- Создайте новый объект Intent с действием Intent.ACTION_SEND.
- Установите тип MIME файла с помощью метода setType().
- Добавьте данные файла в интент с помощью метода putExtra().
- Запустите интент с помощью метода startActivity().

Пример кода:

   File file = new File("путь_к_файлу");
   Uri fileUri = Uri.fromFile(file);
   
   Intent intent = new Intent(Intent.ACTION_SEND);
   intent.setType("тип_MIME_файла");
   intent.putExtra(Intent.EXTRA_STREAM, fileUri);
   
   startActivity(Intent.createChooser(intent, "Отправить файл"));

2. Использование ContentProvider:
- Создайте собственный ContentProvider для вашего приложения, который будет обрабатывать запросы на отправку файла.
- В методе insert() вашего ContentProvider обработайте запрос на сохранение файла, получите его содержимое и сохраните его.
- В методе openFile() вашего ContentProvider обработайте запрос на получение содержимого файла по его URI.
- Создайте интент с действием Intent.ACTION_SEND и установите тип MIME файла.
- Укажите URI вашего ContentProvider в интенте с помощью метода setData().

Пример кода (для простоты, не все части ContentProvider представлены):

   public class MyContentProvider extends ContentProvider {
       //...
       
       @Override
       public Uri insert(Uri uri, ContentValues values) {
           // Обработка запроса на сохранение файла
           // Получение содержимого файла и сохранение
           
           return savedFileUri;
       }
       
       @Override
       public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
           // Обработка запроса на получение содержимого файла по его URI
           // Возвращает содержимое файла в виде ParcelFileDescriptor
       }
       
       //...
   }
   
   Uri fileUri = // URI сохраненного файла в вашем ContentProvider
   
   Intent intent = new Intent(Intent.ACTION_SEND);
   intent.setType("тип_MIME_файла");
   intent.setData(fileUri);
   
   startActivity(Intent.createChooser(intent, "Отправить файл"));

3. Использование сторонних библиотек:
- Воспользуйтесь сторонней библиотекой, такой как Apache HttpClient или OkHttp, для отправки файла по сети.
- Следуйте документации и примерам соответствующей библиотеки для выполнения запроса на отправку файла.

Пример кода с использованием OkHttp:

   File file = new File("путь_к_файлу");
   
   RequestBody requestBody = new MultipartBody.Builder()
           .setType(MultipartBody.FORM)
           .addFormDataPart("file", file.getName(),
                   RequestBody.create(MediaType.parse("тип_MIME_файла"), file))
           .build();
   
   Request request = new Request.Builder()
           .url("URL_адрес_приемника")
           .post(requestBody)
           .build();
   
   OkHttpClient client = new OkHttpClient();
   client.newCall(request).enqueue(new Callback() {
       @Override
       public void onFailure(Call call, IOException e) {
           // Обработка ошибки
       }
   
       @Override
       public void onResponse(Call call, Response response) throws IOException {
           // Обработка ответа
       }
   });

Это лишь несколько возможных способов отправки файла в Android. Выбор конкретного подхода зависит от ваших потребностей и требований проекта.