Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Android Yararlı Dökümanlar
#1
İyi akşamlar. Bazen kafama takılır android için bişeyler denerim olumlu sonuçlu olan kod ve projeleri saklarım. Boş arşivde kalacağına bu konu altından paylaşım dedim. Yararlı olması dileğiyle.

Projeler:

Video oynatıcı ( direk url ve hls(.m3u) destekliyor ) Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
SplashScreen ( siyah ekran çözümü için ) Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Yüklü olan uygulamaların listesi. ( App Share uygulaması yapıla bilir ) Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Java olan bir kodu delphi çalıştırma. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Gelen çağrı, kısa mesaj ve s. dinleme yapmak için kullanılır. Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

Kod parçaları:

VideoView kullanımı java olmadan ( çok iyi olmasada idare eder )
unit VideoView;

interface

uses
 System.SysUtils,
 FMX.Types,
 FMX.Helpers.Android,
 Androidapi.Helpers,
 Androidapi.JNI.App,
 Androidapi.JNI.Net,
 Androidapi.JNI.VideoView,
 Androidapi.JNI.Widget;

type
 TVideoView = class(TObject)
 private
   FDialog: JDialog;
   FVideoView: JVideoView;
 public
   procedure Play(Source: string);
 end;

implementation

{ TVideoView }

procedure TVideoView.Play(Source: string);
begin
 CallInUIThread(
   procedure
   begin
     FDialog := TJDialog.JavaClass.init(TAndroidHelper.Activity, -1);
     FDialog.setCancelable(True);

     FVideoView := TJVideoView.JavaClass.init(TAndroidHelper.Activity);
     FVideoView.setVideoURI(StrToJURI(Source));
     FVideoView.start;

     FDialog.setContentView(FVideoView);
     FDialog.show;
   end);
end;

end.

SharedPreferences kullanımı
var
  SP: JSharedPreferences;
 SPE: JSharedPreferences_Editor;
begin
 // Create
 SP := SharedActivity.getSharedPreferences(StringToJString('delphi'), 0);
 SPE := SP.edit;
 // Write
 SPE.putString(StringToJString('Name'), StringToJString('Ali'));
 SPE.commit;
 // Read
 ShowMessage(JStringToString(SP.getString(
   StringToJString('Name'), StringToJString('Ali'))));
end;

Kütüphane şeklinde bazı kodlar
unit AppLibrary;

interface

uses
 System.SysUtils,
 FMX.Helpers.Android,
 Androidapi.Helpers,
 Androidapi.JNIBridge,
 Androidapi.JNI.Media,
 Androidapi.JNI.Widget,
 Androidapi.JNI.Net,
 Androidapi.JNI.Os,
 Androidapi.JNI.JavaTypes,
 Androidapi.JNI.Telephony,
 Androidapi.JNI.GraphicsContentViewText;

type
 TRingerMode = record
   const
     VIBRATE = 1;
     NORMAL = 2;
     SILENT = 3;
 end;

type
 TApp = class(TObject)
 public
   procedure showToast(Msg: string);
   function checkNetwork: Boolean;
   procedure setRingerMode(RingerMode: Integer);
   function GetBatteryLevel: Integer;
   procedure PlayMX(Title, Url: string);
   procedure PlayAudio(Url: string);
   procedure ScreenON;
   procedure Vibrate(ms: Integer);
   function GetIMEI: string;
   function checkPermission(p: string): Boolean;
   function getVolume: Integer;
 end;

implementation

{ TApp }

procedure TApp.showToast(Msg: string);
begin
 CallInUiThread(
   procedure
   begin
     TJToast.JavaClass.makeText(SharedActivityContext, StrToJCharSequence(Msg),
       TJToast.JavaClass.LENGTH_LONG).show
   end);
end;

function TApp.checkNetwork: Boolean;
 function GetConnectivityManager: JConnectivityManager;
 var
   ConnectivityServiceNative: JObject;
 begin
   ConnectivityServiceNative := SharedActivityContext.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE);
   if not Assigned(ConnectivityServiceNative) then
     raise Exception.Create('Could not locate Connectivity Service');
   Result := TJConnectivityManager.Wrap((ConnectivityServiceNative as ILocalObject).GetObjectID);
   if not Assigned(Result) then
     raise Exception.Create('Could not access Connectivity Manager');
 end;
var
 cm: JConnectivityManager;
 activeNetwork: JNetworkInfo;
begin
 cm := GetConnectivityManager;
 activeNetwork := cm.getActiveNetworkInfo;
 Result := Assigned(ActiveNetwork) and ActiveNetwork.isConnected;
end;

procedure TApp.setRingerMode(RingerMode: Integer);
var
 O: JObject;
 AudioManager: JAudioManager;
begin
 O := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.AUDIO_SERVICE);
 AudioManager := TJAudioManager.Wrap((O as ILocalObject).GetObjectID);
 AudioManager.setRingerMode(RingerMode);
end;

function TApp.GetBatteryLevel: Integer;
var
 IntentFilter: JIntentFilter;
 Intent: JIntent;
 L, S, I: Integer;
begin
 IntentFilter := TJIntentFilter.Create;
 IntentFilter.addAction(TJIntent.JavaClass.ACTION_BATTERY_CHANGED);
 Intent := TAndroidHelper.Context.registerReceiver(nil, IntentFilter);
 L := Intent.getIntExtra(StringToJString('level'), -1);
 S := Intent.getIntExtra(StringToJString('scale'), -1);
 Result := (100 * L) div S;
end;

procedure TApp.PlayMX(Title, Url: string);
var
 Intent: JIntent;
 Data: Jnet_Uri;
begin
 Intent := TJIntent.Create;
 Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
 Data := TJnet_Uri.JavaClass.parse(StringToJString(Url));
 intent.putExtra(StringToJString('title'), StringToJString(Title));
 Intent.setDataAndType(Data, StringToJString('application/x-mpegURL'));
 Intent.setPackage(StringToJString('com.mxtech.videoplayer.ad'));
 try
   TAndroidHelper.Activity.startActivity(Intent);
 except
   intent.putExtra(StringToJString('title'), StringToJString(Title));
   Intent.setDataAndType(Data, StringToJString('application/x-mpegURL'));
   Intent.setPackage(StringToJString('com.mxtech.videoplayer.pro'));
   try
     TAndroidHelper.Activity.startActivity(Intent);
   except
     showToast('MX Player not found!');
   end;
 end;
end;

procedure TApp.PlayAudio(Url: string);
var
 MediaPlayer: JMediaPlayer;
begin
 CallInUIThread(
   procedure
   begin
     MediaPlayer := TJMediaPlayer.JavaClass.init;
     MediaPlayer.setDataSource(StringToJString(Url));
     MediaPlayer.prepare;
     MediaPlayer.start();
   end);
end;

procedure TApp.ScreenON;
begin
 TAndroidHelper.Activity.getWindow.addFlags(
   TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON);
end;

procedure TApp.Vibrate(ms: Integer);
var
 O: JObject;
 V: JVibrator;
begin
 O := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.VIBRATOR_SERVICE);
 V := TJVibrator.Wrap((O as ILocalObject).GetObjectID);
 V.vibrate(ms);
end;

function TApp.GetIMEI: string;
var
 O: JObject;
 TM: JTelephonyManager;
begin
 O := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.TELEPHONY_SERVICE);
 TM := TJTelephonyManager.Wrap((O as ILocalObject).GetObjectID);
 Result := JStringToString(TM.getDeviceId);
end;

function TApp.checkPermission(p: string): Boolean;
begin
 Result := TAndroidHelper.Activity.checkCallingOrSelfPermission(
   StringToJString(p)) =
     TJPackageManager.JavaClass.PERMISSION_GRANTED;
end;

function TApp.getVolume: Integer;
var
 O: JObject;
 AM: JAudioManager;
 I: Integer;
begin
 O := TAndroidHelper.Activity.getSystemService(TJContext.JavaClass.AUDIO_SERVICE);
 AM := TJAudioManager.Wrap((O as ILocalObject).GetObjectID);
 Result := AM.getStreamVolume(TJAudioManager.JavaClass.STREAM_MUSIC);
end;

end.
WWW
Cevapla
#2
Paylaşım için tşkler
Alıntı:
yarumdan ayrildum gözlerum nemli nemli 

rakı haramdur diye çay içtum demli demli...Heart 
Cevapla
#3
Selamün Aleyküm;
Bilgiler için teşekkürler. Benim ilgimi çeken Java kodlarının Delphi'de kullanılabilmesi olayı. Aslında Rad Studio dizininde Java2OP.exe adlı bir çevirici geliyor lakin çalıştığı yok, sorunları hakkında bilgi de yok. Java2Pas.exe adlı bir alternatifi ben de kullandım, aslında çalışıyor ama sadece verdiğiniz örnekte de olduğu gibi harici bir kütüphane / sınıf kullanılmadan, saf olarak yazılmış Java kodları çalışıyor. Yani misal olarak Android SDK sınıflarını kullanıp, bir JAR dosyası elde edip, Java2Pas.exe ile çevirme işlemi yaptığımda birçok .pas dosyası oluşuyor ve tümünü alıp projeye atıp derlediğimde çevrilemeyen sınıflar olduğunu görüyorum.
Cevapla
#4
Gerçekten yararlı bir paylaşım olmuş teşekkürler
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#5
Paylaşım için teşekkürler.
There's no place like 127.0.0.1
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  FMXUI Android bileşenleri AliZairov 0 601 11-02-2017, Saat: 23:26
Son Yorum: AliZairov



Konuyu Okuyanlar: 1 Ziyaretçi