2017-12-27 87 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