Kişisel Sayfaları
İlgi Alanları
İş Tecrubesi
Eğitim Geçmişi
Dil Becerileri
Son Forum Aktiviteleri
4Volley ile timer kullanımı
Merhaba arkadaşlar,
Uzak mysql veri tabanından json türünde verileri çektiğim bi android uygulamam var. Verilerin anlık olarak ekrana gelmesi için timer kullanıyorum bir süre sonra uygulama çöküyor. İnternette yaptığım araştırmalarda volley yerine AsyncHttpClient kullanmam gerektiği yazıyordu fakat yine aynı hatayı aldım.
final Handler handler = new Handler();
TimerTask doAsynchronousTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
mesajGetir();
adapter=new UsersmyListAdapter(Mesaj.this,data2);
sohbetlistele.setAdapter(adapter);
}
});
}
};
Timer timer = new Timer();
timer.schedule(doAsynchronousTask,0,1000);
public void mesajGetir()
{
JSONObject jsonObject = null;
String loginUrl="http://192.168.2.18:9090/InstantMess/webapi/kullanici/mesaj/"+id+"/"+kid;
JsonArrayRequest req = new JsonArrayRequest(loginUrl,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
//adapter2.notifyDataSetChanged();
adapter.notifyDataSetChanged();
data2.clear();
for (int i = 0; i < response.length(); i++) {
JSONObject person = (JSONObject) response.get(i);
String mesaj=person.getString("mesaj");
String im=person.getString("resim");
JSONObject arkId=person.getJSONObject("arkadasId");
int aid=arkId.getInt("arkadasId");
JSONObject kullanici2=arkId.getJSONObject("kullanici2");
int kullanici2kullaniciId=kullanici2.getInt("kullaniciId");
String kullanici2kullaniciAd=kullanici2.getString("kullaniciAd");
JSONObject kullaniciId=person.getJSONObject("kullaniciId");
int kullaniciIdkullaniciId=kullaniciId.getInt("kullaniciId");
String kullaniciIdkullaniciAd=kullaniciId.getString("kullaniciAd");
HashMap<String, String> map2 = new HashMap<String, String>();
map2.put("type","1");
map2.put("mesaj",mesaj);
if(mesaj == "null")
map2.put("type","2");
map2.put("resim",im);
map2.put("arkadasId", String.valueOf(aid));
map2.put("kullaniciId1", String.valueOf(kullanici2kullaniciId));
map2.put("kullaniciAd1",kullanici2kullaniciAd);
map2.put("kullaniciId2", String.valueOf(kullaniciIdkullaniciId));
map2.put("kullaniciAd2", kullaniciIdkullaniciAd);
data2.add(map2);
}
} catch (JSONException e) {
Log.e("Web Servis", "bağlantı sağlanamadı" + e.getLocalizedMessage());
e.printStackTrace();
}
}
},new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// Toast.makeText(getApplicationContext(), "Web servis ile bağlantı kurulamadı.", Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(req);
}
Listview içerisinde text veya resim getirme
Merhaba arkadaşlar,
Anlık mesajlaşma mobil uygulaması geliştiriyorum. Verileri restful web servis aracılığıyla json formatında alıyorum. Gönderdiğim mesajları anlık olarak listviewde görüntüleye biliyorum.
Kişinin galeriden seçtiği bir resmin url'ini cloudinary aracılığıyla mysql'e kayıtlandırıyorum. Listview içerisinde resim görüntüleme kısmında sorun yaşıyorum çünkü bazen mesaj bazen resim getirip listelemesi gerekiyor. Bu konuda önerebileceğiniz bir yöntem var mı? gelen veriye göre değişen bir adapter yazmayı başaramadım.
Yardımlarınız için şimdiden teşekkür ederim.
Web servis ile veritabanına kayıt ekleme
Merhaba arkadaşlar,
Elimde restful kullanarak yazdığım bir web servis var. Mobil telefondan aldığı veriyi Json tipinde döndürüyor. En basitinden veritabanına sha-3 özet fonksiyonu kullanarak parola tuzlama işlemi yapmak istiyorum fakat şifreleme işlemini android tarafında mı(bunu nasıl yapacağım hakkında bir fikrim yok) yoksa web servis tarafında mı yapmalıyım karar veremedim.
Öncesinde md5 kullanarak bir parola şifreleme yapmıştım fakat burda direkt kullanabiliyordum.
public static int musteriEkle(Musteriler musteri){
int state = 0;
String sql = "INSERT INTO Musteriler(TCNO,Ad,Soyad,Adres,SehirID,TelefonNo,CepNo,Parola,Eposta,IPAdress,yetkiNo,KayitTarihi) VALUES(?,?,?,?,?,?,?,md5(md5(?)),?,?,?,NOW())";
try {
con = ConnectionDatabase.getConnection();
psmt = con.prepareStatement(sql);
psmt.setString(1, musteri.getTCNO());
psmt.setString(2, musteri.getAd());
psmt.setString(3, musteri.getSoyad());
psmt.setString(4, musteri.getAdres());
psmt.setInt(5, musteri.getSehirID().getSehirID());
psmt.setString(6, musteri.getTelefonNo());
psmt.setString(7, musteri.getCepNo());
psmt.setString(8, musteri.getParola());
psmt.setString(9, musteri.getePosta());
psmt.setString(10, musteri.getIPAdress());
psmt.setInt(11, musteri.getYetkiNo().getYetkiNo());
state = psmt.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
ConnectionDatabase.kapat(con, psmt);
} catch (SQLException e) {
e.printStackTrace();
}
}
return state;
}
Kullanmam gereken özet fonksiyonum ise şu şekilde;
import java.security.MessageDigest;
import org.bouncycastle.jcajce.provider.digest.SHA3.DigestSHA3;
import org.bouncycastle.jcajce.provider.digest.SHA3.Digest256;
public class Keccak {
public static void main(String[] args) {
System.out.println(sha3("123456"));
}
public static String sha3(final String input) {
final DigestSHA3 sha3 = new Digest256();
sha3.update(input.getBytes());
return Keccak.hashToString(sha3);
}
public static String hashToString(MessageDigest hash) {
return hashToString(hash.digest());
}
public static String hashToString(byte[] hash) {
StringBuffer buff = new StringBuffer();
for (byte b : hash) {
buff.append(String.format("%02x", b & 0xFF));
}
return buff.toString();
}
}
Yardımlarınız için şimdiden teşekkürler...
Android node.js kullanımı
Node.js ile sunucu yazılımı oluşturdum fakat Anroid tarafından sunucuya ulaşamıyorum nasıl bir yol izlemeliyim?