Je suis nouveau dans le développement Android et je veux configurer certains des attributs de l’application en fonction de l’application d’abord exécuté après l’installation. Existe-t-il un moyen de constater que l’application s’exécute pour la première fois, puis de configurer ses attributs de première exécution ?
Réponses
Trop de publicités? import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.UUID;
import android.content.Context;
public class Util {
// ===========================================================
//
// ===========================================================
private static final String INSTALLATION = "INSTALLATION";
public synchronized static boolean isFirstLaunch(Context context) {
String sID = null;
boolean launchFlag = false;
if (sID == null) {
File installation = new File(context.getFilesDir(), INSTALLATION);
try {
if (!installation.exists()) {
launchFlag = true;
writeInstallationFile(installation);
}
sID = readInstallationFile(installation);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
return launchFlag;
}
private static String readInstallationFile(File installation) throws IOException {
RandomAccessFile f = new RandomAccessFile(installation, "r");// read only mode
byte[] bytes = new byte[(int) f.length()];
f.readFully(bytes);
f.close();
return new String(bytes);
}
private static void writeInstallationFile(File installation) throws IOException {
FileOutputStream out = new FileOutputStream(installation);
String id = UUID.randomUUID().toString();
out.write(id.getBytes());
out.close();
}
}
> Usage (in class extending android.app.Activity)
Util.isFirstLaunch(this);
Il n’y a aucun moyen de le savoir via l’API Android. Vous devez stocker un indicateur par vous-même et le rendre persistant dans une `` base de données ou à l’aide d’une base de données.
Si vous souhaitez baser certains éléments liés à la licence sur ce drapeau, je vous suggère d’utiliser un éditeur de préférences obscurci fourni par la bibliothèque LVL. C’est simple et propre.
Cordialement, Stephane
Je ne suis pas sûr que ce soit un bon moyen de le vérifier. Qu’en est-il du cas où l’utilisateur utilise le bouton « effacer les données » des paramètres? SharedPreferences sera effacé et vous intercepterez à nouveau « première exécution ». Et c’est un problème. Je suppose qu’il est préférable d’utiliser InstallReferrerReceiver.