【发布时间】:2020-01-07 09:48:09
【问题描述】:
我正在尝试创建一个从设备文件管理器中选择文件的应用程序。选择文件后,它应通过 WhatsApp 共享。
有人可以帮助如何选择一个文件然后共享该选定的文件吗?
- 如何获取文件的路径?
- 如何使用该路径通过 WhatsApp 进行分享?
-
manifest.xml文件中是否有任何代码要添加?
xml 布局有两个按钮。一个按钮浏览文件管理器,另一个按钮共享所选文件。它还有一个TextView 来显示路径。
public class MainActivity extends AppCompatActivity {
Button b,button;
TextView t;
Intent intent;
public String PathHolder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
b=(Button) findViewById(R.id.b);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
File sharingfile = new File(PathHolder);
Intent whatsappIntent = new Intent(Intent.ACTION_SEND);
whatsappIntent.setType("image/jpg");//mention type of image you want to share
whatsappIntent.setPackage("com.whatsapp");
Uri uri = Uri.fromFile(sharingfile);
whatsappIntent.putExtra(Intent.EXTRA_STREAM, uri);
try {
startActivity(whatsappIntent);
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(getApplicationContext(),"Whatsap not installed",Toast.LENGTH_SHORT).show();
}
}
});
button = (Button)findViewById(R.id.button) ;
t=(TextView)findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
startActivityForResult(intent, 7);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
switch(requestCode){
case 7:
if(resultCode==RESULT_OK){
PathHolder = data.getData().getPath();
Toast.makeText(MainActivity.this, PathHolder , Toast.LENGTH_LONG).show();
t.setText(PathHolder);
}
break;
}
}
}
但我无法通过 WhatsApp 从设备共享文件。
【问题讨论】:
-
您只会共享一个文件。然后用户选择是通过邮件还是任何其他应用程序完成。
标签: android whatsapp file-sharing