2012-07-04 2 views
0

로컬 Wi-Fi (인터넷 연결이 아님)로 연결될 앱을 만들었으며 Gmail 또는 이메일 앱을 통해 메일을 보내야합니다. 그래서 3G 연결을 통해 강제하고 싶습니다. 나는이 짓을했는지 :Wifi를 사용하는 동안 안드로이드가 3G를 사용하도록 설정하거나 Gmail의 응답을 기다립니다.

if (imageLoaded) { 

    ConnectivityManager cm = 
      (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo ni = cm.getActiveNetworkInfo(); 
    if (ni == null) { 

    }else{ 
     if (ni.getType() == ConnectivityManager.TYPE_WIFI 
       || ni.getType() == ConnectivityManager.TYPE_WIMAX) { 
      WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE); 

      if (wm != null) 
       System.out.println(wm.disconnect()); 
     } 
     while (true) { 
      ni = cm.getActiveNetworkInfo(); 
      if (ni != null && ni.getType() == ConnectivityManager.TYPE_MOBILE 
         && ni.isConnected()) { 
       sendOnClick(); 
       break; 
      } 
     } 
    } 
} 

전송에 대한 코드는 다음과 같습니다

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("text/plain"); 
intent.putExtra(Intent.EXTRA_EMAIL, adress); 
intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
intent.putExtra(Intent.EXTRA_TEXT, emailBody); 
Uri fileUri = Uri.fromFile(file);    

intent.putExtra(Intent.EXTRA_STREAM, fileUri);  

try { 
    startActivity(Intent.createChooser(intent, "mail")); 
} 

그러나 것은 내가 어떻게 통지하는 whan 메일이 전송됩니다 그래서 다시 연결할 수 있습니다 단서가 없다 내 지역 와이파이. 이것을 달성하는 방법에 대한 아이디어가 있습니까?

답변

0

자, startActivityForResult 메소드를 사용하여 메일 활동을 시작하기 만하면됩니다.

그러면 전자 메일 응용 프로그램이 다시 응용 프로그램으로 돌아갈 때 활동의 onActivityResult 콜백이 경고됩니다.

참조 : StartActivityForResult

시작 :

private final static int INTENT_UUID = 69;//Declare this in your class 
startActivity(Intent.createChooser(intent, "mail"), INTENT_UUID); 

나중에 수신 :

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == INTENT_UUID) { 
    //Do something 
    }  
} 
+0

내가 3G를 통해 이메일을 보내려면이되지 않을 수 있도록 와이파이 연결이 지역 만 그대로 인터넷에 연결. (Btw itikbird는 무엇을 의미합니까?) – Purfakt

+0

좋아, 내 실수. 나는 당신의 질문의 첫 부분을 이해하지 못했습니다. 메일을 보내는 방법을 명확히하십시오. 아마 전자 메일을 보내는 코드를 광고하십시오. – Yahel

+0

나는 이것을 분명히했다. 제 3 자 고객에게 보냅니다. (예 : Gmail 또는 이메일 앱) – Purfakt

관련 문제