1 page.title= 2 page.keywords=PreviewSDK 3 page.tags=androidn 4 page.image=images/cards/card-nyc_2x.jpg 5 6 @jd:body 7 8 <div id="tb-wrapper"> 9 <div id="tb"> 10 <h2></h2> 11 <ol> 12 <li><a href="#run"></a></li> 13 <li><a href="#access"></a></li> 14 <li><a href="#notification"></a></li> 15 <li><a href="#migrating"></a></li> 16 <li><a href="#testing"></a></li> 17 </ol> 18 </div> 19 </div> 20 21 <p>Android N <i></i> 22 23 </p> 24 25 <ul> 26 <li><i></i> 27 </li> 28 <li><i></i> 29 </li> 30 </ul> 31 32 <p> 33 34 35 </p> 36 37 <ul> 38 <li> 39 </li> 40 <li></li> 41 <li> Talkback</li> 42 </ul> 43 44 <p> 45 46 47 </p> 48 49 <p> PIN 50 51 52 53 54 </p> 55 56 <h2 id="run"></h2> 57 58 <p> 59 60 61 <i></i> <code>android:directBootAware</code> true 62 <p> 63 64 <p> <code>LOCKED_BOOT_COMPLETED</code> 65 66 67 68 </p> 69 70 <p> 71 {@link android.content.BroadcastReceiver} <code>LOCKED_BOOT_COMPLETED</code> Intent 72 </p> 73 74 <pre> 75 <receiver 76 android:directBootAware="true" > 77 ... 78 <intent-filter> 79 <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" /> 80 </intent-filter> 81 </receiver> 82 </pre> 83 84 <p> 85 </p> 86 87 <h2 id="access"></h2> 88 89 <p> 90 <code>Context.createDeviceProtectedStorageContext()</code> 91 {@link android.content.Context} API 92 93 94 </p> 95 96 <pre> 97 Context directBootContext = appContext.createDeviceProtectedStorageContext(); 98 // Access appDataFilename that lives in device encrypted storage 99 FileInputStream inStream = directBootContext.openFileInput(appDataFilename); 100 // Use inStream to read content... 101 </pre> 102 103 <p> 104 105 106 107 </p> 108 109 <h2 id="notification"></h2> 110 111 <p> 112 113 </p> 114 115 <p> {@link android.content.BroadcastReceiver} <code>ACTION_USER_UNLOCKED</code> 116 117 {@link android.content.Intent#ACTION_BOOT_COMPLETED 118 ACTION_BOOT_COMPLETED} 119 120 </p> 121 122 <p> <code>UserManager.isUserUnlocked()</code> 123 </p> 124 125 <h2 id="migrating"></h2> 126 127 <p> 128 129 <code>Context.moveSharedPreferencesFrom()</code> 130 <code>Context.moveDatabaseFrom()</code> 131 </p> 132 133 <p> 134 135 136 137 </p> 138 139 <h2 id="testing"></h2> 140 141 <p> 142 </p> 143 144 <p class="caution"><strong></strong> 145 </p> 146 147 <p> Android N 148 </p> 149 150 <ul> 151 <li> <b>Developer options</b> <b>Settings > About phone</b> <b>Build number</b> 152 153 <b>Settings > Developer options</b> <b>Convert to file encryption</b> 154 155 </li> 156 <li> adb shell 157 <pre class="no-pretty-print"> 158 $ adb reboot-bootloader 159 $ fastboot --wipe-and-use-fbe 160 </pre> 161 </li> 162 </ul> 163 164 <p> 165 166 No thanks adb shell 167 168 169 </p> 170 171 <pre class="no-pretty-print"> 172 $ adb shell sm set-emulate-fbe true 173 </pre> 174 175 <p></p> 176 177 <pre class="no-pretty-print"> 178 $ adb shell sm set-emulate-fbe false 179 </pre> 180 181 <p></p> 182