我想通过在 Android 上共享文件获得结果
I want to get result from sharing a file on Android
我必须在 android 上默认共享一个 url,但如果 url 正在共享或只是意图已关闭,我想要一个响应。我正在使用 activity 结果但是当我与 gmail 共享它时 return 0(CANCELED) 当我关闭 intent.I 时相同 需要这个来设置在文本 view.Here 上共享的文本是我的代码。
public void executeShareLinkClick() {
Intent intentShare = new Intent(ACTION_SEND);
intentShare.setType("text/plain");
viewModel.isLinkSharedOpen.set(true);
intentShare.putExtra(Intent.EXTRA_TEXT,"My Text of the message goes here ... write anything what you want");
startActivityForResult(Intent.createChooser(intentShare, "Shared the text ..."),111);
}
public void onActivityResult(int requestCode, int resultCode, @Nullable @org.jetbrains.annotations.Nullable Intent data) {
if (resultCode==RESULT_OK){
viewModel.isLinkShared.set(true);
}else{
viewModel.isLinkShared.set(false);
}
viewModel.isLinkSharedOpen.set(false);
}
if(getIntent().getData() != null) {
Uri fileUri = getIntent().getData();
File file = new File(fileUri);
}
// for multiple files
if(getIntent().getAction().equals(Intent.ACTION_SEND_MULTIPLE) && getIntent().getClipData() != null) {
int count = getIntent().getClipData().getItemCount();
int currentUri = 0;
while(currentUri < count) {
Uri fileUri = getIntent().getClipData().getItemAt(currentUri).getUri();
File file = new File(fileUri);
currentUri = currentUri + 1;
}
}
抱歉,没有您想要的选项。 ACTION_SEND
不支持结果,应用不必指明用户是否发送了您的内容。
最接近的做法是将 EXTRA_CHOSEN_COMPONENT_INTENT_SENDER
添加到 createChooser()
返回的 Intent
中。通过它,您可以了解用户是否在该选择器中选择了某些内容。然而:
如果用户什么都不选,我想你不会发现
仍不表示用户实际使用所选应用发送您的内容
我必须在 android 上默认共享一个 url,但如果 url 正在共享或只是意图已关闭,我想要一个响应。我正在使用 activity 结果但是当我与 gmail 共享它时 return 0(CANCELED) 当我关闭 intent.I 时相同 需要这个来设置在文本 view.Here 上共享的文本是我的代码。
public void executeShareLinkClick() {
Intent intentShare = new Intent(ACTION_SEND);
intentShare.setType("text/plain");
viewModel.isLinkSharedOpen.set(true);
intentShare.putExtra(Intent.EXTRA_TEXT,"My Text of the message goes here ... write anything what you want");
startActivityForResult(Intent.createChooser(intentShare, "Shared the text ..."),111);
}
public void onActivityResult(int requestCode, int resultCode, @Nullable @org.jetbrains.annotations.Nullable Intent data) {
if (resultCode==RESULT_OK){
viewModel.isLinkShared.set(true);
}else{
viewModel.isLinkShared.set(false);
}
viewModel.isLinkSharedOpen.set(false);
}
if(getIntent().getData() != null) {
Uri fileUri = getIntent().getData();
File file = new File(fileUri);
}
// for multiple files
if(getIntent().getAction().equals(Intent.ACTION_SEND_MULTIPLE) && getIntent().getClipData() != null) {
int count = getIntent().getClipData().getItemCount();
int currentUri = 0;
while(currentUri < count) {
Uri fileUri = getIntent().getClipData().getItemAt(currentUri).getUri();
File file = new File(fileUri);
currentUri = currentUri + 1;
}
}
抱歉,没有您想要的选项。 ACTION_SEND
不支持结果,应用不必指明用户是否发送了您的内容。
最接近的做法是将 EXTRA_CHOSEN_COMPONENT_INTENT_SENDER
添加到 createChooser()
返回的 Intent
中。通过它,您可以了解用户是否在该选择器中选择了某些内容。然而:
如果用户什么都不选,我想你不会发现
仍不表示用户实际使用所选应用发送您的内容