سؤال

أولاً ، قمت بترميز بعض الأساليب في النشاط الرئيسي ، لكنني قررت أن تكون فئة.

هذا هو الكود الخاص بي ... OpenFileOutput و OpenFileInput غير محددة. اي فكرة؟؟ ربما يجب أن تكون الخدمة أو النشاط ... ؟؟

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

}

هل كانت مفيدة؟

المحلول

هذه هي الطرق المحددة على Context الفصل ، وليس الأساليب المحددة في صفك. عندما كان الرمز الخاص بك جزءًا من نشاط, ، يمكن أن تستخدم طريقة الراحة OpenFileInput () فيها Activity الفئة الأساسية للوصول إلى الأساسي context.getApplicationContext (). OpenFileInput () (وبالمثل ل openFileOutput()).

الآن سيتعين عليك استبدالها بالمكالمات المباشرة إلى الأساسي سياق أساليب.

نصائح أخرى

يحل محل

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

مع السطر أدناه

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

إذا تم استخدامها داخل الشظية

FileOutputStream fos =getActivity().openFileOutput(filename, getActivity().MODE_PRIVATE);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top