Android Programlama Ders 34: URI Nedir Araştırıyoruz - Technopat
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
    • Nasıl Yapılır
    • 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
    • Nasıl Yapılır
    • 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

  • Rotring Rapid hangı menseı daha iyi?
  • RTX 3070 alınır mı?
  • MSI Vector NVIDIA renk ayarları nasıl olmalı?
  • R7 7800x3D RTX 5070 sistem için RAM, SSD, PSU, işlemci soğutucu ve kasa tavsiyesi
  • İncehesap bozuk monitör değişiminde süreç nasıl işliyor?
  • BF6 vs Tarkow vs CoD Black Ops 7
  • The Last of Us Part 1 vs The Last of Us Part 2
  • 839 TL'ye AC Shadows alınır mı?
  • ARC Raiders'e 40 dolar verilir mi?
  • RX 6700 XT sisteme yükseltme önerisi

Technopat Video

Şu an oynayan

Laptop işlemcili kasa olur mu? ASUS TUF Gaming T500MV (2025) inceleme

ASUS TUF Gaming T500MV

Laptop işlemcili kasa olur mu? ASUS TUF Gaming T500MV (2025) inceleme

Haber
iOS 26.1 hangi yenilikleri getirdi?

iOS 26.1 hangi yenilikleri getirdi?

Haber
Kriz kapıda! RAM ve SSD fiyatlarına büyük zam

Kriz kapıda! RAM ve SSD fiyatlarına büyük zam

Haber

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}
Sonuç bulunamadı
Bütün Sonuçları Göster
  • Giriş
  • Teknoloji Haberleri
  • Sosyal
  • Nasıl Yapılır
  • Yapay Zeka
  • Video
  • Tavsiyeler
  • İncelemeler
    • Video İncelemeler
  • Güvenlik
  • Oyun
  • Makale
    • Pratik
    • Yazar Köşeleri

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