2013-06-11 3 views
0

Когда я открываю приложение, оно должно быть прочитано внешним и скопировать весь номер из контакта в этот файл, но когда я пытаюсь всегда принудительно закрыть.Не удается записать во внешнее хранилище

public class anti_spam extends TabActivity { 
    /** Called when the activity is first created. */ 
    BufferedReader reader; 
    public String[] Number; 
    int x=0; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     //------------------------ 
     getListNumber(); 
     File logFile = new File("root/log.txt"); 

     //Hitung Jumlah isi File 
     try { 
      reader = new BufferedReader(new FileReader("root/log.txt")); 
       try { 
       while (reader.readLine()!= null) 
       { 
        x++; 
       } 
       reader.close(); 
      } catch (IOException e) {} 
     } catch (FileNotFoundException e1) {} 

     //Hapus File Jika Jumlah Kontak Beda 
     if (x-1 != Number.length){ 
      logFile.delete(); 
     } 
      if (!logFile.exists()) 
      { 
       try 
       { 
       logFile.createNewFile(); 
       Toast.makeText(getBaseContext(), "Data Berhasil Dibuat", Toast.LENGTH_LONG).show(); 
       //Isi File 
        try 
        { 
         //BufferedWriter for performance, true to set append to file flag 
         BufferedWriter buf = new BufferedWriter(new FileWriter(logFile, true)); 
         String[] numTemp; 
         String numBaru; 
         for(int i=0;i<Number.length;i++) 
         { 
          numTemp = Number[i].split("-"); 
         numBaru = (numTemp[0]+numTemp[1]+numTemp[2]); 
         if (numBaru.substring(0, 1).equals("0")) 
         { 
          numBaru = numBaru.replaceFirst("0","+62"); 
         } 
          buf.append(numBaru + "\n"); 
         } 
         buf.newLine(); 
         buf.close(); 
        } 
        catch (IOException e) 
         { 
         Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show(); 
         } 
       } 
       catch (IOException e) 
       { 
       // TODO Auto-generated catch block 
        Toast.makeText(getBaseContext(), e.toString(), Toast.LENGTH_LONG).show(); 
       } 
      }} 

на манифеста

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"> 
    </uses-permission> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"> 
    </uses-permission> 
+0

Пожалуйста Post Вход здесь –

+1

показать выход аварийного дампа – donfede

+0

при попытке по программе AVD не заставлять закрыть журнал создавать .. но если я попробую на смартфоне заставить закрыть .. смартфон не может создать? – Ebranda

ответ

0

пожалуйста, добавьте это в файле манифеста.

<uses-permission android:name="android.permission.READ_CONTACTS" /> 
+0

читать контакты уже вставлять и файл log.txt просто файл с созданием при создании приложения. Я пытаюсь создать log.txt на SD-карте, все еще принудительно закрываю. – Ebranda

0

@Dhiren правильно о добавлении разрешения в файл манифеста:

<uses-permission android:name="android.permission.READ_CONTACTS" /> 

Но есть еще проблемы, так что читайте дальше ....


I подумайте, что вам, возможно, придется уделять больше внимания папкам, на которые вам разрешено писать.

Отметьте эту ссылку на Environment.getExternalStorageDirectory() о том, как это сделать.

Существует также несколько полезных код в этих ответах:

Смежные вопросы