Question

D'abord, je certaines méthodes codé Activité principale, mais j'ai décidé qu'ils devraient être une classe.

est mon code ... openFileOutput et openFileInput ne sont pas définies. Une idée?? il faudrait peut-être un service ou une activité ... ??

    package spexco.hus.system;

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Date;
    import spexco.hus.cepvizyon.CepVizyon;
    import android.content.Context;

    public class LicenseIDB {
    private String PHONECODEFILE = "CepVizyonCode";
    private static String PhoneCode = null;

    public LicenseIDB() {
    if (readLocal(PHONECODEFILE, 8) == null)
        createSystemCode();
}

public static long getDate() {
    Date currentTime = new Date();
    return currentTime.getTime();
}

public void createSystemCode() {
    long date = getDate();
    String str = Integer.toHexString(Integer.MAX_VALUE - (int) date);
    for (int i = str.length(); i < 8; i++) {
        str += "" + i;
    }
    PhoneCode = str.substring(0, 8);
    saveLocal(PhoneCode, PHONECODEFILE);

}

public static String getPhoneCode() {

    return PhoneCode;
}

public void saveLocal(String fileString, String Adress) {

    try {
        FileOutputStream fos = openFileOutput(Adress, Context.MODE_PRIVATE);
        fos.write(fileString.getBytes());
        fos.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public String readLocal(String Adress, int lenght) {
    byte[] buffer = new byte[lenght];
    String str = new String();
    try {
        FileInputStream fis = openFileInput(Adress);
        fis.read(buffer);
        fis.close();
        str = new String(buffer);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return str;
}

}

Était-ce utile?

La solution

Ce sont des méthodes définies dans la classe Context, non pas des méthodes définies dans votre classe. Lorsque votre code faisait partie d'un activité , il pourrait utiliser une méthode pratique openFileInput () dans sa classe de base Activity pour accéder au sous-jacent Context.getApplicationContext () openFileInput (). (et de même pour openFileOutput()).

Maintenant, vous devrez remplacer ceux des appels directs à la contexte méthodes .

Autres conseils

Remplacer

FileOutputStream fos = openFileOutput(Adress, Context.MODE_PRIVATE);

à la ligne ci-dessous

FileOutputStream fos = getApplicationContext().openFileOutput(filename, getActivity().MODE_PRIVATE);

Si utilisé à l'intérieur Fragment

FileOutputStream fos =getActivity().openFileOutput(filename, getActivity().MODE_PRIVATE);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top