الطريقة OpenFileOutput () غير محددة!
-
26-09-2019 - |
سؤال
أولاً ، قمت بترميز بعض الأساليب في النشاط الرئيسي ، لكنني قررت أن تكون فئة.
هذا هو الكود الخاص بي ... 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);
لا تنتمي إلى StackOverflow