/ / Posielate e-mail bez e-mailovej adresy? - android, e-mail

Poslať e-mail bez e-mailovej adresy? android, e - mail

Prepáčte za mätúci názov.Mám aplikáciu a chcem, aby mi používatelia posielali spätnú väzbu. Potrebujem niečo, čo nie je príliš fantazijné, iba textové pole, kde môže používateľ zadať text a stlačiť tlačidlo na odoslanie správy na e-mailový účet, ktorý som nastavil pre spätnú väzbu. Chcem, aby to používateľ mohol urobiť bez použitia svojho e-mailového účtu alebo iného účtu. Môžem na odoslanie spätnej väzby použiť niečo ako JSON?

odpovede:

0 pre odpoveď č. 1

Môžete povoliť používateľom odoslať spätnú väzbu pomocou základnej kontroly overenia e-mailu. Táto časť kódu beží na úrovni API 8 a vyššej. Kliknutím na tlačidlo odoslať urobíte toto základné overenie e-mailu

public boolean checkEmail(String email) {
try {
return android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches();

} catch (Exception e) {
Logging.e(TAG, "Email Validation", "Error: "+e.getMessage(),e);

}
return false;
}

Ak sa validácia vráti ako pravdivá.Potom zo zadaného textu získajte zadané e-mailové ID a textový obsah, zarámujte adresu URL príspevku a skontrolujte odpoveď, či je to HttpStatus.SC_OK. Ak sa vráti v poriadku, potom z príspevku vykonajte volanie metódy vo svojej činnosti pomocou poslucháča, ktorý chcete zobraziť vyskakovacie okno, že spätná väzba bola úspešne odoslaná. Ak chcete odoslať adresu URL a skontrolovať odpoveď. Zarámujte adresu URL do pozadia a odovzdajte adresu URL tejto metóde, kde vašej triede Utils vráti odpoveď.

public static boolean sendRequestOnly(String url) {




DefaultHttpClient client = returnHttpClient();

HttpGet getRequest = new HttpGet(url);

try {

HttpResponse resp = client.execute(getRequest);
final int statusCode = resp.getStatusLine().getStatusCode();

if (statusCode == HttpStatus.SC_OK) {
Logging.d("ClassName", "Retreive response", "Status Code "
+ statusCode + " for URL " + url);
return true;
} else {
return false;
}

} catch (IOException e) {
getRequest.abort();

}

return false;

}

0 pre odpoveď č. 2

Môžete použiť GCM (cloudová správa Google). Nájdete kód tu.


0 pre odpoveď č. 3

Ak chcete zarámovať adresu URL, použite túto metódu. Spätná väzba vás musí dostať, nie?

String url = "https://blablabla.net/";
StringBuilder sbUrl = new StringBuilder("feedback.jsp?email=");
sbUrl.append(emailId);
sbUrl.append("&content=");
sbUrl.append(textContent);
sbUrl.append("&subject=");
sbUrl.append(subject);
sbUrl.append("&os_version=");
sbUrl.append(OptimumConstants.OS_VERSION);

// ak chcete userId.Osoba, ktorá vám poslala spätnú väzbu atď sbUrl.append ("& user_id ="); sbUrl.append (settings.getString ( SomeConstants.LOGGED_IN_USERNAME, "")); // tu môžete pridať ďalšie adresy URL žiadosti, ako je ID zariadenia, typ zariadenia, verzia operačného systému atď., iba ak chcete získať všetky tieto informácie sbUrl.append ("&" + Utils.FewOtherRLParams); url + = sbUrl.toString ();

    boolean resp= Utils.sendRequestOnly(url);

return resp;

0 pre odpoveď č. 4

Táto metóda slúži na predvolený časový limit, ak sa vyskytne problém v pripojení, napr. Časový limit zásuvky alebo časový limit pripojenia.

            public static DefaultHttpClient returnHttpClient() {
HttpParams httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used.
int timeoutConnection = 60000;
HttpConnectionParams.setConnectionTimeout(httpParameters,
timeoutConnection);
// Set the default socket timeout (SO_TIMEOUT)
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 600000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

return new DefaultHttpClient(httpParameters);
}