5

デバイスの起動時にサービスを開始する小さな Android アプリケーションを作成しています。アプリケーションは、Android バージョン 4.4.2 (Mi Note 4G、セキュリティ アプリで権限を有効にする必要があります)、5.0 (Lenovo K3 Note)、5.1 (One Plus One)、6 (Nexus 5) のすべてのモバイルで正常に動作します。 Android 5.0 を実行する 1 つのモバイル (Lenovo A1000、ランチャーは MiUI に似ています)。アプリケーションは内部ストレージにのみインストールされます。デバイスを再起動する前に、アプリを 1 回使用または起動しました。以下は、マニフェストとブロードキャスト レシーバー ファイルからの抜粋です。

マニフェスト.xml:

 <receiver android:name="com.company.Broadcast"
     android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
       
        <intent-filter>
    
            <action android:name="android.intent.action.BOOT_COMPLETED" />
    
            <category android:name="android.intent.category.LAUNCHER" />
    
        </intent-filter>
    
    </receiver>
    
    <service android:enabled="true" android:exported="false" android:name="com.company.service" />

放送受信機:

    public class Broadcast extends BroadcastReceiver {
    
        private static final String TAG = “BroadcastReceiver";
    
        @Override
    
        public void onReceive(Context context, Intent intent) {
    
            Log.d(TAG, "onReceive");
    
            Intent service = new Intent(context, Service.class);
    
            service.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    
            context.startService(service);
        
    }
    
    
    }

プリインストールされているアプリの中には、起動時に正常に起動するものもあれば、スキップされるものもあります。私のアプリがたまたまスキップされたアプリのリストに載っていました。

デバイスが起動したときの logcat からのいくつかの行を次に示します。

01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.deskclock checking android.permission.RECEIVE_BOOT_COMPLETED: BasePermission{183dc63c android.permission.RECEIVE_BOOT_COMPLETED}
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.deskclock granting android.permission.RECEIVE_BOOT_COMPLETED
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.mms.service checking android.permission.RECEIVE_BOOT_COMPLETED: BasePermission{183dc63c android.permission.RECEIVE_BOOT_COMPLETED}
01-18 17:02:58.933 504-560/? I/PackageManager: Package com.android.mms.service granting android.permission.RECEIVE_BOOT_COMPLETED

スキップされたパッケージ コメント:

01-18 17:03:06.235 504-529/? D/ActivityManager: send broadcast: android.intent.action.BOOT_COMPLETED, skip package: com.google.android.gm
01-18 17:03:06.235 504-529/? D/ActivityManager: send broadcast: 

> android.intent.action.BOOT_COMPLETED, skip package: com.company

01-18 17:03:06.235 504-529/? D/ActivityManager: send broadcast: android.intent.action.BOOT_COMPLETED, skip package: com.frozendevs.cache.cleaner

動作させるためのコードを少し見逃した可能性があります。コメントや提案は、さらに先に進むために大いに役立ちます。

4

2 に答える 2

-1

長い調査の後、私はレノボ1000モバイルでも解決策を得ました。

 <action android:name="android.intent.action.USER_PRESENT" />

私にとっては問題なく動作しています.lenovoモバイルuが少なくとも2分間待つ必要がある場合、自動的に開きます

于 2018-06-29T14:51:52.820 に答える