2017-09-29 4 views
-1

Ich möchte SMS nur senden, wenn die App zum ersten Mal startet und dafür möchte ich eine Datei beim ersten Start erstellen und SMS senden und beim nächsten Start nach der vorhandenen Datei fragen, falls vorhanden, keine SMS senden hier ist mein CodeWie kann ich einen Code nur beim ersten Start ausführen?

public static String file_name = "save_setting"; 
public static String text_file = "1"; 

public void writefile(){ 

    try { 
     FileOutputStream fos_setting = openFileOutput(file_name , MODE_PRIVATE); 
     fos_setting.write(text_file.getBytes()); 
     fos_setting.close(); 
    }catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

public void sendSMS(){ 
    String phoneNumber = "000000000"; 
    String message = "text"; 
    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,new Intent("SENT_SMS"), 0); 
    SmsManager sms = SmsManager.getDefault(); 
    sms.sendTextMessage(phoneNumber, null, message, sentPI, null); 

} 

public void readfile() { 
    File directory = Environment.getDataDirectory(); 
    File file = new File(directory + "/save_setting"); 
    if (!file.exists()) { 
     writefile(); 
     sendSMS(); 
    } else { 

    } 
} 
+0

Mögliche Duplikat [Android; Überprüfen Sie, ob die Datei existiert, ohne eine neue zu erstellen] (https://stackoverflow.com/questions/16237950/android-check-if-file-exists-without-creating-a-new-one) –

Antwort

0

Verwenden Sie auf Android stattdessen SharedPreferences. Sie können damit einfache Informationen speichern, die in einer vom System verwalteten Datei gespeichert werden.

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
boolean isFirstLaunch = prefs.getBoolean("first_launch", true); 
if (isFirstLaunch) { 
    // Do your stuff here... 
    sendSMS(); 

    // Remember that you already have sent the SMS 
    prefs.edit().putBoolean("first_launch", false).apply(); 
} 
Verwandte Themen