2017-12-27 86 views
0

我试图从我的原始文件夹共享几个音频到另一个应用程序(whatsapp,gmail等)。通过一个按钮,如果我点击它的音频声音,并且如果我保持按下,我想要共享选项。正如我在互联网上看到的,共享文件的方式是创建一个Intent,但是在按住方法内创建它,我在getPackageName中出现错误。我怎么能解决这个问题?我的代码下面部分:如何通过长时间点击分享声音?

final MediaPlayer sound1 = MediaPlayer.create(this, R.raw.cristobalmasgrande); 
Button button1 =(Button) this.findViewById(R.id.button1); 

button1.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v) { 
     sound1.start(); 
    } 
}); 

button1.setOnLongClickListener(new View.OnLongClickListener() { 
    @Override 
    public boolean onLongClick(View v) { 
     Intent compartirAudio = new Intent(android.content.Intent.ACTION_SEND); 
     compartirAudio.setType("audio/*"); 
     compartirAudio.putExtra(Intent.EXTRA_STREAM, 
       Uri.parse("android.resource://" + this.getPackageName() + "/raw/" + araujomio)); //Error on getPackageName() 
     startActivity(Intent.createChooser(compartirAudio, "Compartir vía")); 
     return false; 
    } 
}); 

回答

3

this.getPackageName()thisOnLongClickListener实例。它没有名为getPackage()的方法。 您有几种选择,e.g:

Uri.parse("android.resource://" + v.getContext().getPackageName() + "/raw/" + araujomio)); 

Uri.parse("android.resource://" + getApplicationContext.getPackageName() + "/raw/" + araujomio)); 
+0

感谢乌的地块,它的工作原理。 – 9pablo7