Delphi Can

Orjinalini görmek için tıklayınız: Mobil Uygulamadan Mp3 dosya paylaşı (çözüldü)
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2 3
Listview de listelenen bir mp3 dosyası listviewden seçerek nasıl paylaşabilirim ?
nerede paylaşıcan? whatsappda filan mı?
Merhaba. Kodu javadan çevirdim ama deneme şansım olmadı. Yapman gereken müzik dosya yolunu göstermen.

1. İzin gerekli
Project->Options->Uses Permissions->Write external storage

2. Uses bunları eklemen gerekiyor
uses
  Androidapi.Helpers,
 Androidapi.JNI.Net,
 Androidapi.JNI.GraphicsContentViewText;

3. Fonksiyonu ShareMedia('MP3 dosya yolu') olarak kullanıcaksın
procedure ShareMedia(const Path: string);
var
 Media: Jnet_Uri;
 Intent: JIntent;
begin
 Media := TJnet_Uri.JavaClass.parse(StringToJString(Path));
 Intent := TJIntent.Create;
 Intent.setAction(TJIntent.JavaClass.ACTION_SEND);
 Intent.setType(StringToJString('audio/mp3'));
 Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, Media);
 TAndroidHelper.Activity.startActivity(Intent, StringToJString('Share Sound File'));
end;
kodları yerleştirince direk bunları veriyor.

BrzBOj.png
Merhaba,
Kod editöründe altı kırmızı olarak çizili olan kod kısımlarının Uses bölümündeki referansları eksik tanımlanmış.
Uses bölümünü aşağıdaki gibi değiştirin.

uses
 System.SysUtils, System.Types, System.UITypes, System.Classes,
 System.Variants,
 FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs
{$IFDEF ANDROID}
   , Androidapi.Helpers,
 Androidapi.JNI.GraphicsContentViewText,
 Androidapi.JNI.Net
{$ENDIF ANDROID};


Tüm platformlar için (kod uyumluluğu ve Multi Platform açısından) geliştirecekseniz; platforma özgü derleyici direktiflerini kullanmanızda fayda var.
Örneğin;

{$IFDEF ANDROID}
var
 Media: Jnet_Uri;
 Intent: JIntent;
{$ENDIF ANDROID}
begin
{$IFDEF ANDROID}
 Media := TJnet_Uri.JavaClass.parse(StringToJString(Path));
 Intent := TJIntent.Create;
 Intent.setAction(TJIntent.JavaClass.ACTION_SEND);
 Intent.setType(StringToJString('audio/mp3'));
 Intent.putExtra(TJIntent.JavaClass.EXTRA_STREAM, Media);
 TAndroidHelper.Activity.startActivity(Intent,
   StringToJString('Share Sound File'));
{$ENDIF ANDROID}
end;
1L6y0D.png

verdiğiniz kodu butona aktardım
putextra ve
startactivity de hatalar veriyor
---

ayrıca listview de seçilen mp3 ü paylasır değilmi
Merhaba,
PutExtra,  Androidapi.JNI.GraphicsContentViewText Unit'ini,
startActivity ise Androidapi.JNI.App Unit'ini kullanır.
Kullanılanları yerleştirdim yine aynı hatalar
dosya yolunda mi hata yapıyoruz acaba listview yolunu belirtmemiz gerekmiyormu
(06-04-2017, Saat: 18:07)Paranoyaq Adlı Kullanıcıdan Alıntı: [ -> ]Kullanılanları yerleştirdim yine aynı hatalar
dosya yolunda mi hata yapıyoruz acaba listview yolunu belirtmemiz gerekmiyormu

Dosya yolu ile ilgili bir sorun değil. Kod editöründeki hata denetleyicisi (Error Insight), yalnızca yazım hatası ve referans yönünden denetler.
Muhtemelen Uses bölümünde referans olarak yazmış olduğunuz Unit'lerin path'leri tanımlı değil. 
Library kısmında C:\Program Files (x86)\Embarcadero\Studio\18.0\lib\android\release veya C:\Program Files (x86)\Embarcadero\Studio\18.0\source\rtl\android olmalıdır.

2017-04-06_18-25-43.png
vb6yMp.png

bu şekilde hocam
Sayfalar: 1 2 3