Kişisel Sayfaları
İlgi Alanları
İş Tecrubesi
Eğitim Geçmişi
Sertifikalar & Başarılar
Kullanıcıya ait test sonucu bulunmamaktadır.
Dil Becerileri
Son Forum Aktiviteleri
13ksoap2 ile web service erişirken SSLHandshakeException ?
Arkadaşlar selamlar,
Uzun bir süredir aşağıdaki methodla çalışan android uygulamamda, Web Service için kullanılan GeoTrust sertifikasını güncelledikten sonra problem yaşamaya başladım.
[code]
LoginEntity object = new LoginEntity();
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("username", username);
request.addProperty("password", password);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject response = (SoapObject) envelope.getResponse();
if (response.hasProperty("LOGINKEY")) {
if (response.getPropertyAsString("LOGINKEY") == null) {
object.setLoginKey(null);
} else {
SoapObject token = (SoapObject) response.getProperty(0);
object.setLoginKey(token.getPropertyAsString(0));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return object;
[/code]
Aldığım hata mesajı :
javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Android Scanner nedir?
Arkadaşlar selamlar,
Android geliştirici dünyasında gezerken/araştırırken Scanner diye bir class'a rastladım. Bu class ne iş yapar, nasıl kullanılır, kullanım alanları nelerdir? Bu konuda bilgilendirebilecek kimse var mı?
Teşekkürler..
Activity başlatma veya Dialog gösterme.
Selamlar;
Arkadaşlar yarattığım bir CustomView'den yeni bir Activity başlatabilmek veya customDialog açabilmek için Context' e ihtiyacım var. Bunu bir türlü olduramadım. Yardımcı olması açısından kodu paylaşıyorum :
[code]
public class GridDesign extends View {
// . . .Variable Definitions . . .
/**
* CONSTRUCTOR METHOD
**/
public GridDesign(Context paramContext)
{
super(paramContext);// 7
settings = PreferenceManager.getDefaultSharedPreferences(paramContext);// 8
pntGrid.setStrokeWidth(1.0F);// 9
pntGrid.setColor(Color.argb(50, 255, 255, 255));// 10 COLOR = WHITE
pntWhite.setStrokeWidth(1.0F);// 11
pntWhite.setColor(Color.WHITE);// 12
pntRed.setStrokeWidth(1.0F);// 13
pntRed.setColor(Color.RED);// 14
pntRed.setTextSize(20);// 15
pntBlue.setStrokeWidth(1.0F);// 16
pntBlue.setColor(Color.BLUE);// 17
if (settings.getBoolean("pref_back", true))// 18 DRAWLINE COLOR( TRUE = BLACK - FALSE = WHITE)
currentItemColor = Color.BLACK;// 19
}
......... // Burada bir method içinde butona tıklama yakalıyorum fakat "dialog" ya da "activity" başlatamadım
}
[/code]
Şimdiden teşekkür ederim.
Activity to Fragment Dönüşümü ?
Selamlar;
Elimde var olan bir class'ı yeni uğraştığım projeye eklemek istiyorum. Fakat eski kodları (aşağıdakiler) Fragment yapısına getirmeye çalışıyorum. Bazı denemeler yaptım fakat başarıya ulaşamadım. Çözüm önerisi arıyorum. Teşekkür ederim.
[code]
public class CanvasActivity extends Activity
{
FrameLayout layout;
GridDesign myGrid;
int oldItemType = 0;
int requestedCode;
boolean useAdds = true;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(1);
Object localObject = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
layout = new FrameLayout(getApplicationContext());
layout.setLayoutParams((ViewGroup.LayoutParams) localObject);
myGrid = new GridDesign(getApplicationContext());
localObject = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
myGrid.setLayoutParams((ViewGroup.LayoutParams) localObject);
layout.addView(myGrid);
localObject = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
((FrameLayout.LayoutParams) localObject).gravity = 83;
((FrameLayout.LayoutParams) localObject).setMargins(10, 60, 10, 10);
myGrid.setFocusable(true);
myGrid.setFocusableInTouchMode(true);
setContentView(layout);
}
protected void onActivityResult(int paramInt1, int paramInt2, Intent paramIntent)
{
super.onActivityResult(paramInt1, paramInt2, paramIntent);
try
{
if ((paramInt1 == requestedCode) && (paramIntent.getData() != null))
{
Intent localIntent = new Intent();
localIntent.setAction("android.intent.action.SEND");
localIntent.setType("image/jpeg");
localIntent.putExtra("android.intent.extra.STREAM", paramIntent.getData());
startActivity(localIntent);
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
public void onConfigurationChanged(Configuration paramConfiguration)
{
super.onConfigurationChanged(paramConfiguration);
}
public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent)
{
boolean bool;
switch (paramInt)
{
case 82:
bool = super.onKeyDown(paramInt, paramKeyEvent);
break;
default:
bool = myGrid.onKeyDown(paramInt, paramKeyEvent);
break;
}
return bool;
}
public void mStartActivity(Intent i)
{
startActivity(i);
}
public Context mGetContext() {
return CanvasActivity.this;
}
}
[/code]
Android Studio vs. Eclipse
Arkadaşlar selamlar;
Sorum başlıktan da anlaşıldığı üzere iki IDE'nin karşılaştırılması. http://developer.android.com/sdk/installing/studio.html sayfasında ufak bir karşılaştırma mevcut. Fakat eğer her ikisini de kullanmış/bilgi sahibi olanlar var ise tecrübelerini paylaşırsa sevinirim. Çünkü bazı şeyler kullanıma geçildiğinde kağıt üstünde durduğu gibi olmuyor.
Teşekkür ederim.
ksoap2 ile web service erişirken SSLHandshakeException ?
Pek güvenli olmayan bir yöntem ile probleme çözüm getirdim. DİKKAT ! Uygulamayı bu halde bırakmamak, geçici çözüm olarak kullanmak lazım.
ksoap2 kullanarak web service bağlantısı kullandığımız sınıfın en altına aşağıdaki kodu ekleyerek, uygulamaya "tüm SSL bağlantılarına güven" dedim.
[code]
private static TrustManager[] trustManagers;
public static class _FakeX509TrustManager implements javax.net.ssl.X509TrustManager {
private static final X509Certificate[] _AcceptedIssuers = new X509Certificate[] {};
public void checkClientTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] arg0, String arg1)
throws CertificateException {
}
public boolean isClientTrusted(X509Certificate[] chain) {
return (true);
}
public boolean isServerTrusted(X509Certificate[] chain) {
return (true);
}
public X509Certificate[] getAcceptedIssuers() {
return (_AcceptedIssuers);
}
}
public static void allowAllSSL() {
javax.net.ssl.HttpsURLConnection
.setDefaultHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
javax.net.ssl.SSLContext context = null;
if (trustManagers == null) {
trustManagers = new javax.net.ssl.TrustManager[] { new _FakeX509TrustManager() };
}
try {
context = javax.net.ssl.SSLContext.getInstance("TLS");
context.init(null, trustManagers, new SecureRandom());
} catch (NoSuchAlgorithmException e) {
Log.e("allowAllSSL", e.toString());
} catch (KeyManagementException e) {
Log.e("allowAllSSL", e.toString());
}
javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(context
.getSocketFactory());
}[/code]
Daha sonra "allowAllSSL" metodunu "HttpTransportSE" oluşturmadan hemen önce çağırdım ve oluşturduğum "androidHttpTransport" değişkenini istediğim gibi kullandım.
[code]
allowAllSSL();
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try {
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject response = (SoapObject) envelope.getResponse();
//.........
} catch (Exception e) {
e.printStackTrace();
}[/code]
Android uygulamadakı ıcon nasıl degıstırılır ?
"drawable" klasörünün altındaki "ic_launcher.png" dosyasını değiştirerek yapabilirsin. Aşağıdaki siteden istediğin logoyu android standartlarında yapabilirisin.
Activity başlatma veya Dialog gösterme.
Activity class'ım bu şekilde, kullandığım GridView class'ı extends View şeklinde, soruda görebilirsiniz, denediğim yöntemler de yazılı, yine başarısız.
[code]
public class CustomActivity extends Activity
{
private FrameLayout layout;
private GridDesign myGrid;
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_ACTION_BAR);
Object localObject = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
layout = new FrameLayout(getApplicationContext());
layout.setLayoutParams((ViewGroup.LayoutParams) localObject);
myGrid = new GridDesign(getApplicationContext());
localObject = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
myGrid.setLayoutParams((ViewGroup.LayoutParams) localObject);
layout.addView(myGrid);
localObject = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
((FrameLayout.LayoutParams) localObject).gravity = Gravity.NO_GRAVITY;
((FrameLayout.LayoutParams) localObject).setMargins(10, 60, 10, 10);
myGrid.setFocusable(true);
myGrid.setFocusableInTouchMode(true);
setContentView(layout);
}
protected void onActivityResult(int paramInt1, int paramInt2, Intent paramIntent)
{
......
}
public void onConfigurationChanged(Configuration paramConfiguration)
{
.......
}
public boolean onKeyDown(int paramInt, KeyEvent paramKeyEvent)
{
.....
}
}
[/code]
Activity başlatma veya Dialog gösterme.
//Constuctor'ın içinde bu şekilde global bir değişkene atadım.
myActivity = paramContext;
. . . . . .
//Tıklamayı yakaladıgım methodun içine ise bunu yazdım.
final Dialog dialog = new Dialog(myActivity);
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("DENEME"); dialog.show();
Fakat olmadı.
Activity to Fragment Dönüşümü ?
[code]
// import android.app.Activity;
import android.app.Fragment;
...
// public class CustomFragment extends Activity
public class CustomFragment extends Fragment
...
// public void onCreate(Bundle savedInstanceState)
public void onStart()
...
// super.onCreate(savedInstanceState);
// requestWindowFeature(1);
super.onStart();
getActivity().requestWindowFeature(1);
...
// * * * EKLEDİM * * *
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.fragment_custom, container, false);
}
// * * *
...
// * * * SİLDİM * * *
setContentView(layout);
// * * *
[/code]
vb. değişiklikler uyguladım internet araştırmalarım sonucu. Aynen bahsettiğiniz gibi methodların başlarına getActivity(). ekledim (örneğin; getActivity().getApplicationContext()). Fakat derlemede hata vermemesine rağmen, NavigationDrawer listesinde fragment'i seçince uygulama kapanıor.