以下更新的解决方案
首先,我在用户的手机中显示WAV文件列表
for(File singleFile : files){
if(singleFile.isDirectory() && !singleFile.isHidden()){
al.addAll(Songs(singleFile));
}
else{
if(singleFile.getName().endsWith(".wav") || singleFile.getName().endsWith(".WAV")){
al.add(singleFile);
}
}
}
接下来我尝试让用户选择他们想要上传的wav文件
ArrayAdapter<String> adp = new ArrayAdapter<String>(getApplicationContext(),R.layout.songs,R.id.song,items);
listView.setAdapter(adp);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(bytes==null) {
startActivity(new Intent(getApplicationContext(), MainActivity.class).putExtra("pos", position).putExtra("songlist", Songs));
}
}
});
}
之后我尝试使用它来获取所选歌曲的位置和数据。
Intent i = getIntent();
Bundle b = i.getExtras();
Songs = (ArrayList) b.getParcelableArrayList("songlist");
position = b.getInt("pos",0);
u = Uri.parse(Songs.get(position).toString());
这就是我被困住的地方,我不确定我是否正确地将wav文件上传到驱动器。 免责声明,我的所有代码都是根据我过去的代码改编而来的,这些代码会显示一个wav文件列表并选择它来播放。 所以我可能从一开始就错了,但我需要一些指导我接下来要做什么,我不确定将文件转换为bytes / string并存储在outputstream中。
我真的希望有人会指导我,就像过去两周我一直在寻找的那样。
谢谢。
<小时/> **更新**
大家好,我发现了另一种上传到谷歌硬盘的方法。我想与大家分享。这是我上面代码的延续。 这是代码。
首先,您将获得要选择的wav文件的名称。
final String name = Songs.get(position).getName();
然后你把它放在这几行代码中。
Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), name));
Intent share = new Intent(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_TEXT, "Content");
share.putExtra(Intent.EXTRA_STREAM, uri );
share.setType("audio/*");
startActivity(Intent.createChooser(share, "Share Sound File"));
此部分让您与所有允许您共享wav / audio文件的应用共享,而Google Drive就是其中之一。
希望这也适合你。享受