小编Anc*_*tus的帖子

Nexus 7上的广播接收器

我正在尝试编写一个在手机启动时运行的服务,并且必须从SD卡读取数据.起初我使用了一个接收器,android.intent.action.BOOT_COMPLETED但切换到下面的意图,以确保已加载SD卡.

我的问题是,在我的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>
Run Code Online (Sandbox Code Playgroud)

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);
        //}
    }
}
Run Code Online (Sandbox Code Playgroud)

我注释了意图匹配只是为了尝试并记录该类是否完全执行.

我唯一的预感是Nexus 7没有广播,MEDIA_MOUNTED因为它没有真正的SD卡; 但我也无法收到BOOT_COMPLETED意图.

并提出这个问题; 是的我有BOOT_COMPLETED权限.

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Run Code Online (Sandbox Code Playgroud)

java android broadcastreceiver android-manifest

0
推荐指数
1
解决办法
827
查看次数