我是Java和Android编程的新手,我正在开发一个音板应用程序。 当你点击按钮时应用播放声音的那一刻,但我也想为每个声音添加一个共享功能(使用OnLongClick),但我无法让它工作。 过去两天我一直在寻找通过互联网的解决方案,但我无法解决它。
我正在使用shareIntent,当用户长按该按钮时,它会显示一个可以共享声音的应用列表(Dropbox,bluetooth,whatsapp ...)。 如果我选择了dropbox,它只会上传一个没有扩展名的文件,与Whatsapp共享将无法正常工作,并显示此错误:“无法发送,请再试一次。”
我的代码如下所示:
final int[] buttonIds = { R.id.sound01, R.id.sound02, R.id.sound03,
R.id.sound04, R.id.sound05, R.id.sound06,
R.id.sound07, R.id.sound08, R.id.sound09,
R.id.sound10, R.id.sound11, R.id.sound12 };
final int[] soundIds = { R.raw.sound01, R.raw.sound02, R.raw.sound03,
R.raw.sound04, R.raw.sound05, R.raw.sound06,
R.raw.sound07, R.raw.sound08, R.raw.sound09,
R.raw.sound10, R.raw.sound11, R.raw.sound12 };
View.OnLongClickListener listener2 = new View.OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
for(int i = 0; i < buttonIds.length; i++)
{
if(v.getId() == buttonIds[i])
{
selectedSoundId = soundIds[i];
// Can't share audio. It shares it with no format, so whatsapp won't accept it
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("audio/mp3");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://com.guillefix.zombie_soundboard/" + selectedSoundId));
startActivity(Intent.createChooser(shareIntent, "Send to:"));
break;
}
}
return false;
}
};
答案 0 :(得分:0)
在清单中声明意图过滤器
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="audio/*" />
</intent-filter>