如何在 android 中发送 whatsapp 等媒体文件
How to send Media files like whatsapp in android
正在开发一款应用程序,可以通过互联网发送图像、音频和视频。接收此媒体文件的人必须在他的设备中安装了我的应用程序。
我现在能做的就是压缩要发送的图片。我不知道从哪里开始,因为大多数在线教程都使用意图来执行此操作,但我不想触发另一个应用程序来执行发送。我的应用程序应该能够自行完成所有这些工作。
我是这样压缩图片的
public class ImageCompression extends AsyncTask<String, Void, String> {
private Context context;
private static final float maxHeight = 1280.0f;
private static final float maxWidth = 1280.0f;
public ImageCompression(Context context){
this.context=context;
}
@Override
protected String doInBackground(String... strings) {
if(strings.length == 0 || strings[0] == null)
return null;
return compressImage(strings[0]);
}
protected void onPostExecute(String imagePath){
// imagePath is path of new compressed image.
}
那是很久以前的事了。我是 android 开发的新手。使用 firebase 很容易解决这个问题。只需在 firebase 中上传文件并发送包含图像 uri 的 FCM 通知。
Uri file = Uri.fromFile(new File("path/to/images/rivers.jpg"));
StorageReference riversRef = storageRef.child("images/"+file.getLastPathSegment());
UploadTask uploadTask = riversRef.putFile(file);
Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
// Continue with the task to get the download URL
return ref.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
int id =1;
FirebaseMessaging fm = FirebaseMessaging.getInstance();
fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com")
.setMessageId("1")
.addData("my_message", downloadUri.toString())
.addData("my_action","SAY_HELLO")
.build());
} else {
// Handle failures
// ...
}
}
});
正在开发一款应用程序,可以通过互联网发送图像、音频和视频。接收此媒体文件的人必须在他的设备中安装了我的应用程序。
我现在能做的就是压缩要发送的图片。我不知道从哪里开始,因为大多数在线教程都使用意图来执行此操作,但我不想触发另一个应用程序来执行发送。我的应用程序应该能够自行完成所有这些工作。
我是这样压缩图片的
public class ImageCompression extends AsyncTask<String, Void, String> {
private Context context;
private static final float maxHeight = 1280.0f;
private static final float maxWidth = 1280.0f;
public ImageCompression(Context context){
this.context=context;
}
@Override
protected String doInBackground(String... strings) {
if(strings.length == 0 || strings[0] == null)
return null;
return compressImage(strings[0]);
}
protected void onPostExecute(String imagePath){
// imagePath is path of new compressed image.
}
那是很久以前的事了。我是 android 开发的新手。使用 firebase 很容易解决这个问题。只需在 firebase 中上传文件并发送包含图像 uri 的 FCM 通知。
Uri file = Uri.fromFile(new File("path/to/images/rivers.jpg"));
StorageReference riversRef = storageRef.child("images/"+file.getLastPathSegment());
UploadTask uploadTask = riversRef.putFile(file);
Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
// Continue with the task to get the download URL
return ref.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
int id =1;
FirebaseMessaging fm = FirebaseMessaging.getInstance();
fm.send(new RemoteMessage.Builder(SENDER_ID + "@gcm.googleapis.com")
.setMessageId("1")
.addData("my_message", downloadUri.toString())
.addData("my_action","SAY_HELLO")
.build());
} else {
// Handle failures
// ...
}
}
});