2010-05-20 21 views

cevap

6

Herhangi bir içerik sağlayıcısının sütun adlarını almak için Cursor.getColumnNames() kullanabilirsiniz.

ContentResolver contentResolver = getContentResolver(); 
Cursor cursor = contentResolver.query(
    Uri.parse("content://sms/inbox"), null, null, null, null); 

String[] columnNames = cursor.getColumnNames(); 

content://sms/inbox için bu telefonumda kilitli _ID, thread_id, adres, kişiyi, tarih, protokol, okumak, durumu, tip, reply_path_present, konu, vücut, service_center, verir.

Ayrıca SmsProvider'a da bakabilirsiniz, ancak genel API'nin bir parçası değildir.

+0

Çok teşekkürler Josef. İngilizcemdeki zayıflığım için üzgünüm. Örnek olarak, '-1' durumunun değerinde ne anlama geldiğini kastediyorum. Sadece 15 içerik/sms alanı var mı? Android sürümüne bağlı mı? Paylaşılan bağlantı, SmsProvider gibi açık kaynak kodunu nereden ve nasıl öğrenebilirim? Aslında Android'de 2 ay çalıştım. Bu yüzden bana daha fazla bilgi verin. – soclose

+0

SMS içerik sağlayıcısının kendisi "genel API'nin bir parçası değil" dir. Öyleyse, bunun için android.provider paketinde sınıflar görürdünüz. Bkz. Http://android-developers.blogspot.com/2010/05/be-careful-with-content-providers.html – CommonsWare

+0

Teşekkür ederiz. Yukarıdaki 5 alanın ne için kullanıldığını bana bildirin. – soclose

1

Belirli bir İmleç'in sahip olduğu tüm sütunları belirleme yolu, follingtir.

StringBuffer info = new StringBuffer(); 
for(int i = 0; i < Cursor.getColumnCount(); i++) { 
    info.append("Column: " + Cursor.getColumnName(i) + "\n"); 
} 

Tablodaki tüm sütunların ne olduğunu öğrenmek için bunu yazdırın.