휴대 전화 부팅시 실행되는 서비스를 작성하려고하며 SD 카드에서 데이터를 읽어야합니다. 처음에는 android.intent.action.BOOT_COMPLETED
에 대한 수신자를 사용하고 있었지만 아래의 의도로 전환하여 SD 카드가로드되었는지 확인했습니다.Nexus 7의 브로드 캐스트 수신기
제 문제는 제 Nexus 7에서 MEDIA_MOUNTED
의도를 수신하지 않는 것입니다. Nexus 7에는 SD 카드가 없습니다 (단, 별도의 SD 카드 파티션이 있음). 나는 또한 같은 행운을 가지고 BOOT_COMPLETED
인 텐트를 시도했다. 에뮬레이터와 Thunderbolt에서 동일한 코드를 테스트했으며 두 가지 의도가 모두 작동합니다.
Manifiest :
<receiver
android:name=".StartupReceiver"
android:enabled="true"
android:exported="true"
android:label="Start the NFS Automounter Service">
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED"></action>
<data android:scheme="file"/>
<!-- <action android:name="android.intent.action.BOOT_COMPLETED"></action>-->
</intent-filter>
</receiver>
BroadcastReceiver
클래스 : 난 그냥 시도하고 클래스가 전혀 실행하면 로그인 할 의도가 일치에서 주석
public class StartupReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
//if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction()))
//if ("android.intent.action.MEDIA_MOUNTED".equals(intent.getAction()))
//{
Log.d("NFS_Automounter", "Recieved Mount");
Intent serviceIntent = new Intent("com.ancantus.nfsautomounter.AutomountService");
context.startService(serviceIntent);
//}
}
}
.
Nexus 7은 실제 SD 카드가 없기 때문에 MEDIA_MOUNTED
을 브로드 캐스트하지 않습니다. 그러나 나는 BOOT_COMPLETED
인 텐트를받을 수 없습니다.
그리고 질문을 포기하십시오; 예, BOOT_COMPLETED
권한이 있습니다.
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
활동이 있습니까? 장치를 재부팅하기 전에 한 번 활동을 실행 했습니까? – CommonsWare
@CommonsWare 활동 없음, 수신자 클래스가 서비스를 실행합니다. – Ancantus