- 功能描述:可单个或者批量进行蓝牙文件分享,支持文件、文件夹
- 最低版本要求:Android2.0以上
- 示例:如下
void DoShareFilesByBt(String aFileName)
{
ArrayList<Uri> vUriArray = FileInfo.GetTotalUris(aFileName,null);
FileRelatedUtil.DoShareFilesByBt(this, vUriArray);
}
/*-------------------------实现源码-----------------------------*/
public static void DoShareFilesByBt(Context aContext, ArrayList<Uri> aUriArray)
{
if(aUriArray!=null && aUriArray.size()>0)
{
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setClassName("com.android.bluetooth", "com.android.bluetooth.opp.BluetoothOppLauncherActivity");
intent.putExtra(Intent.EXTRA_STREAM, aUriArray);
intent.setType("*/*"); //must set this flag
aContext.startActivity(intent);
}
}
// 获取当前目录下所有文件的uri
public static ArrayList<Uri> GetTotalUris(String aFilePath, ArrayList<Uri> aUriArray)
{
ArrayList<Uri> vRetArray = aUriArray;
if(vRetArray == null)
{
vRetArray = new ArrayList<Uri>();
}
// 获取源文件夹当前下的文件或目录
File vCurFile = new File(aFilePath);
if(vCurFile.isFile())
{
vRetArray.add(Uri.fromFile(vCurFile));
}
else
{
File[] files = vCurFile.listFiles();
for (File vFile: files)
{
if(vFile.isFile())
{
vRetArray.add(Uri.fromFile(vFile));
}
else if(vFile.isDirectory())
{
GetTotalUris(vFile.getAbsolutePath(),vRetArray);
}
}
}
return vRetArray;
}