0

ローカルの Wifi (インターネット接続ではない) で実行されるアプリを作成しました。Gmail またはメール アプリを介してメールを送信する必要があります。だから私はそれを強制的に3G接続にしたいと思います。私はこれをやった:

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"));
}

しかし、問題は、メールが送信されたときに通知を受ける方法がわからないため、ローカルの Wifi に再接続できることです。これを達成する方法について何か考えはありますか?

4

1 に答える 1

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
  }     
}
于 2012-07-04T13:19:00.540 に答える