Şerif Şadi Şenkule
Şerif Şadi Şenkule
Ankara
03/06/2014 tarihinden beri üye
290 GY Puanı
34K GY Sırası
3 Rozet
0 Sertifika
8 Soru Sordu
5 Cevap Verdi
0 Blog Yazısı
0 Etiket Takibi

Hakkında

İş Tecrubesi

Kullanıcıya ait İş tecrübesi bilgisi bulunmamaktadır.

Eğitim Geçmişi

Lefke Avrupa Üniversitesi
| Aralık 2020 - Aralık 2020

Sertifikalar & Başarılar

GY Sertifikaları (0)
Kullanıcının GY sertifikası bulunmamaktadır.
Diğer Sertifikaları (0)
Kullanıcıya ait sertifika bulunmamaktadır.
Test Sonuçları (0)

Kullanıcıya ait test sonucu bulunmamaktadır.

Dil Becerileri

Son Forum Aktiviteleri

13
Tümünü Gör

ksoap2 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.

picture-23778-1401789696.jpg
9 yıl 9 ay önce yanıtladın

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..

picture-23778-1401789696.jpg
10 yıl önce yanıtladın

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.

picture-23778-1401789696.jpg
10 yıl 5 ay önce yanıtladın

ksoap2 ile web service erişirken SSLHandshakeException ?

picture-23778-1401789696.jpg
12 Mart 2015 tarihinde cevaplandı

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 ?

picture-23778-1401789696.jpg
21 Eylül 2014 tarihinde cevaplandı

"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.

http://romannurik.github.io/AndroidAssetStudio/icons-launcher.html#foreground.space.trim=1&foreground.space.pad=0&foreColor=33b5e5%2C0&crop=0&backgroundShape=bevel&backColor=ffffff%2C100

 

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.