Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net
  • Haber
  • Yapay Zeka
  • Tavsiyeler
  • Oyun
  • Video
  • Teknoloji
    • Mobil
    • Yazılım
    • Elektronik Alışveriş Fırsatları
    • Pratik
    • Ev Teknolojileri
    • Makale
    • Güvenlik
    • Ekonomi
    • İnternet
    • Giyilebilir Teknoloji
    • Sağlık
    • Yazıcı
    • Sosyal Medya
    • Otomobil
      • Elektrikli Otomobil
  • Sosyal
Sonuç bulunamadı
Bütün Sonuçları Göster
Teknoloji tutkunu Technopatların ortak adresi: Technopat.net

Anasayfa - Makale - Pratik - Android Programlama Ders 34: URI Nedir Araştırıyoruz

Android Programlama Ders 34: URI Nedir Araştırıyoruz

16 Nisan 2014 - 16:00
- Mobil, Pratik

Android Programlama Ders 34’te URI projeyi kullanarak ne olduğunu öğreneceğiz.

Geçen derslerde Intent’in ne olduğunu öğrendik. Intent’in action parametresi mevcut. Bu özelliği etkileşime (Activity) birden fazla faaliyet (eylem) yapma imkanı sunuyor. Tabii bir faaliyet (action) yapmak için nesneye ihtiyacımız vardır. Bunun için Intent’te bir parametre (data-veri) mevcut.

Data’ya değeri atamak için setData (Uri data) metodunu kullanabiliriz. Bu metoda giriş olarak Uri nesneyi gönderiyoruz. Uri – nesne bir karakter diziyi alıp bölüyor ve bölen parçaları içeriyor. Uri’nin amacı soyut veya fiziksel kaynağı belirlemek. En basit örnek olarak web sayfası kullanalım. http://developer.android.com/reference/android/net/Uri.html

Bu adresi birkaç parçaya bölebiliriz:

  • Scheme – http
  • Scheme-specific part – // developer.android.com/reference/android/net/Uri.html
  • Path – /reference/android/net/Uri.html

http protokolünde başka parametreler de mevcut ancak şu anda onlara bakmayacağız. Mesela ftp protokolünün de farklı parametreleri vardır. Önemli olan burada verileri kullanarak kaynağı belirtmek. Diziyi oluşturmak için RFC 2396 belgeyi kullanabiliriz.

Mesela VideoView’e bir video indirmek istiyoruz. Video programda veya SD kartta olabilir. Uri kullanarak programa videoyu nereden indirmesi gerektiğini söyleyebiliriz.

Mesela video playcat.3gp /res/raw adresinde bulunsun. Video’ya ulaşmak için aşağıdaki verdiğim kodu kullanabiliriz:

Uri catURI;
catURI = Uri.parse("android.resource://your.app.package/" + R.raw.playcat);

Eğer dosya SD kartta bulunuyorsa

Uri catURI;
catURI = Uri.parse("file:///sdcard/playcat.3gp");

komutu kullanabiliriz.

VideoView kullanmak için setVideoURI(URI uri) metodunu kullanmamız gerekiyor. Bu metoda uri nesneyi belirtmemiz gerekecek.

Uri catURI,  
//  URI kaynaktan aliyoruz
catURI = Uri.parse("android.resource://your.app.package/" + R.raw.playcat);  

// eger URI sdcarda bulunuyorsa   

catURI = Uri.parse("file:///sdcard/playcat.3gp");  
VideoView videoView;  

//...kodumuz 

videoView.setURI(catURI);

Başka örneklere bakalım:

Koordinatlar.

Uri uri = Uri.parse("geo:54.354183,37.34011");

uri.getScheme() metodu  geo’yu verecek ve uri.getSchemeSpecificPart() metodu  – 54.354183,37.34011 verecek.

Telefon numarası.

Uri uri = Uri.parse("tel:1234578");

Bu durumda uri.getScheme() metodu tel ve uri.getSchemeSpecificPart()– 1234578 verecek.

Konuyu daha iyi anlamak için yeni bir proje açalım:

  • Project name: P0034_SimpleIntent
  • Build Target: Android 4.2
  • Application name: SimpleIntent
  • Package name: tr.example.simpleintent
  • Create Activity: MainActivity

Main.xml dosyayı açalım ve aşağıdaki kodu kopyalayalım:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
 xmlns:android="http://schemas.android.com/apk/res/android" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:orientation="horizontal"> 
<Button 
 android:id="@+id/btnWeb" 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 android:layout_margin="10dp" 
 android:layout_weight="1" 
 android:text="Web"> 
</Button> 
<Button 
 android:id="@+id/btnCall" 
 android:layout_width="match_parent" 
 android:layout_height="wrap_content" 
 android:layout_margin="10dp" 
 android:layout_weight="1" 
 android:text="Call"> 
</Button> 
</LinearLayout>

Ekranda iki tane buton olacak. İlk butonu web sayfasını açmak ve ikincisini telefon numarası aramak için kullanacağız.

MainActivity.java’yı oluşturalım:

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity implements OnClickListener {

  Button btnWeb;
  Button btnCall;

  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    btnWeb = (Button) findViewById(R.id.btnWeb);
    btnCall = (Button) findViewById(R.id.btnCall);

    btnWeb.setOnClickListener(this);
    btnCall.setOnClickListener(this);
  }

  @Override
  public void onClick(View v) {
    Intent intent;
    switch (v.getId()) {
    case R.id.btnWeb:
      intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://developer.android.com"));
      startActivity(intent);
      break;

    case R.id.btnCall:
      intent = new Intent(Intent.ACTION_DIAL);
      intent.setData(Uri.parse("tel:12345"));
      startActivity(intent);
      break;
    }
  }
}

Web sayfası açmak için Intent (String action, Uri uri) tasarımcısını kullandık. Bu tasarımcı Intent’i oluşturuyor ve giriş parametreleri action ve data kullanılıyor. Action olarak sistemdeki standart ACTION_VIEW kullanılıyoruz. Data olarak Uri kullanılıyoruz. Uri http://developer.android.com adresten oluşuyor.

Telefon numarasını aramak için Intent (String action) kullandık. Action olarak ACTION_DIAL kullanıyoruz. Ve data‘yı Uri‘ye yerleştiriyoruz, telefon numarası Uri’de bulunuyor.

Uygulamamıza internet gerekecek. İnternete erişimi sağlamak için Manifest dosyasında Permission sekmesini açıyoruz. Ve Add butonuna basıp, Uses Permission seçeneğini seçiyoruz. Name alanında android.permission.INTERNET giriyoruz. Bu ayarlar internete erişme imkanı sunacaktır.

Kaydedelim ve uygulamayı çalıştıralım:

main

Web butonuna basalım. Tarayıcı açılıyor ve verdiğimiz adresi kullanarak sayfayı gösteriyor.

web

Back butonuna basıyoruz ve Call butonunu seçiyoruz.

telf

Numarayı aramak için arama simgesine basmamız gerekiyor.

Ders Sonu Notları:

Bu derste örnekleri kullanarak Uri nedir ve nasıl kullanılır, bunları öğrendik. Sonraki derste basit bir tarayıcı oluşturacağız.

Etiketler: AndroidAndroid programlama dersleridershttpprogramlamaRFC 2396setDatasetVideoteknolojiURIuri.getSchemeVideoViewwebyeni
PaylaşPaylaşTweetYollaPaylaş
Victor Cuiumju

Victor Cuiumju

Yorumlar 1

  1. Adaware says:
    11 yıl önce

    Google translate ile yabancı kaynaklardan çeviri yapılıp yapıştırılmış. Tarzanca konuşan cümleler.

    Yanıtla

Yorum Yap Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

RSS Technopat Sosyal

  • Hangi RTX 5070 Ti modeli tercih edilmeli?
  • 16 cm araç hoparlörü tavsiyesi
  • Hamburger ve pizzaların yüksek fiyatları hakkında ne düşünüyorsunuz?
  • Half-life ve öldüren sis hikayesi
  • God of War: Ragnarok vs Spider-Man 2
  • Zula ve Point Blank hala oynanır mı?
  • 30 bin TL laptop önerisi
  • 30-35 bin TL'ye sistem önerisi
  • İncehesap hazır sistem kurulumu nasıl yapılır?
  • 2.000 TL'ye rekabetçi oyunlar için sessiz klavye önerisi

Technopat Video

Şu an oynayan

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Apple Watch’u bambaşka bir seviyeye taşıyan 5 uygulama

Akıllı Saat
Huawei Watch GT 6 Pro

Apple’ı 20’ye katlayan saat! Huawei Watch GT 6 Pro incelemesi

Akıllı Saat
Technopat ofisi Eylül ayında neler aldı? 

Technopat ofisi Eylül ayında neler aldı? 

Giyilebilir Teknoloji

Teknoloji tutkunu Technopatların ortak adresi: Technopat.net!

Güncel teknoloji, internet, donanım, yazılım, oyun ve daha fazlası haber, makale ve videolar ile Technopat’ta sizlerle.


01010100 01100101 01100011 01101000 01101110 01101111 01110000 01100001 01110100

Kategoriler

  • Yapay Zeka
  • Ev Teknolojileri
  • Makale
  • Video

Sosyal Medya

Bağlantılar

  • Hakkında
  • Haber
  • Video
  • Sosyal
  • Çerez Politikası
© 2011-2025 Technopat. Tüm Hakları Saklıdır.
Netse
Çerez Onayı
Web sitemizi ziyaret ettiğinizde, kullanıcı deneyiminizi daha iyi hale getirmek, hizmetlerimizi size daha etkin bir şekilde sunabilmek için çerezler (cookies) ve benzeri araçlar kullanıyoruz. Çerezler, internet sitesinin düzgün çalışmasını sağlamak, içeriği kişiselleştirmek, sosyal medya özellikleri sağlamak ve trafik analizi yapmak için kullanılan küçük metin dosyalarıdır. Çerezleri nasıl kullandığımız ve kişisel verilerinizi nasıl işlediğimiz hakkında daha fazla bilgi almak için çerez politikamızı ve kişisel veri politikamızı inceleyebilirsiniz.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, sadece kullanıcının açıkça talep ettiği belirli bir hizmetin kullanılmasını sağlama amacıyla veya iletişimin elektronik iletişim ağı üzerinden iletilmesinin tek amacıyla yasal olarak kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından istenmeyen tercihlerin depolanması yasal amacıyla gereklidir.
İstatistikler
Sadece istatistiksel amaçlarla kullanılan teknik depolama veya erişim. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Pazarlama
Teknik depolama veya erişim, reklam gönderimi için kullanıcı profilleri oluşturmak veya kullanıcıyı bir web sitesinde veya birden fazla web sitesinde benzer pazarlama amaçları için takip etmek amacıyla gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri yönet
{title} {title} {title}
Onayı Yönet
En iyi deneyimleri sunmak için, cihaz bilgilerini saklamak ve/veya bunlara erişmek amacıyla çerezler gibi teknolojiler kullanıyoruz. Bu teknolojilere izin vermek, bu sitedeki tarama davranışı veya benzersiz kimlikler gibi verileri işlememize izin verecektir. Onay vermemek veya onayı geri çekmek, belirli özellikleri ve işlevleri olumsuz etkileyebilir.
Fonksiyonel Her zaman aktif
Teknik depolama veya erişim, abone veya kullanıcı tarafından açıkça talep edilen belirli bir hizmetin kullanılmasını sağlamak veya bir elektronik iletişim ağı üzerinden bir iletişimin iletimini gerçekleştirmek amacıyla meşru bir amaç için kesinlikle gereklidir.
Tercihler
Teknik depolama veya erişim, abone veya kullanıcı tarafından talep edilmeyen tercihlerin saklanmasının meşru amacı için gereklidir.
İstatistik
Sadece istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Sadece anonim istatistiksel amaçlar için kullanılan teknik depolama veya erişim. Mahkeme celbi, İnternet Hizmet Sağlayıcınızın gönüllü uyumu veya üçüncü bir taraftan ek kayıtlar olmadan, yalnızca bu amaçla depolanan veya alınan bilgiler genellikle kimliğinizi belirlemek için kullanılamaz.
Pazarlama
Teknik depolama veya erişim, reklam göndermek için kullanıcı profilleri oluşturmak veya benzer pazarlama amaçları için kullanıcıyı bir web sitesinde veya birkaç web sitesinde izlemek için gereklidir.
Seçenekleri yönet Hizmetleri yönetin {vendor_count} satıcılarını yönetin Bu amaçlar hakkında daha fazla bilgi edinin
Tercihleri görüntüle
{title} {title} {title}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

© 2025 Technopat
Sorularınız için Technopat Sosyal