2015-01-08 4 views
0

Я пытаюсь записать файл после загрузки устройства Android. Я проверил все, что связано с этой темой, но никто из них не работал для меня. Мой телефон - Huawei Honor (H30-U10), и он укоренен. Версия Android 4.2.2. Вот мой код:RECEIVE_BOOT_COMPLETED не работает

AndroidManifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="bog.ddrc.technicianmobile" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="14" 
     android:targetSdkVersion="21" /> 

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

    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 

    <application 
     android:name="bog.ddrc.technicianmobile.App" 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="bog.ddrc.technicianmobile.activities.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <receiver 
      android:enabled="true" 
      android:name="bog.ddrc.technicianmobile.StartTMServiceAtBootReceiver" 
      android:permission="android.permission.RECEIVE_BOOT_COMPLETED"> 
      <intent-filter> 
       <action android:name="android.intent.action.BOOT_COMPLETED" /> 
      </intent-filter> 
     </receiver> 
    </application> 

</manifest> 

StartTMServiceAtBootReceiver.java:

public class StartTMServiceAtBootReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     String data = "text"; 
     File path = Environment.getExternalStorageDirectory(); 
     File file = new File(path, "test.txt"); 

     try { 
      OutputStream os = new FileOutputStream(file); 
      os.write(data.getBytes()); 
      os.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+2

Возможный дубликат [android.permission.RECEIVE \ _BOOT \ _COMPLETED не запускает активность при загрузке] (http://stackoverflow.com/questions/20763380/android-permission-receive-boot-completed-does- not-launch-activity-at-boot) – shkschneider

+0

Я не хочу запускать активность. Я хочу писать в файле. – alien

+1

Вы попросили сделать команду 'RECEIVE_BOOT_COMPLETED'. Вы читали принятый ответ? .. – shkschneider

ответ

1

Удалить

android:permission="android.permission.RECEIVE_BOOT_COMPLETED" 

от вашего <receiver> блок.

0

После проверки всех упомянутых ответов и трюков я наконец нашел, почему код не работает на моем телефоне. На некоторых телефонах Android, таких как «Huawei Honor 3C Android 4.2.2», есть меню Statup Manager в их настройках, и ваше приложение должно быть проверено в списке. :)

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

  • Нет связанных вопросов^_^