0

タスクをスケジュールできるように、Android の起動時に OnReceive メソッドを実行しようとしています。

残念ながら、BradcastReciever の onReceive は、ルート システムにアプリをインストールした場合にのみ起動時に呼び出されます。android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE で問題が解決すると思いました。

しかし、この投稿からは、それは不可能のように見えますが、特定のチュートリアルでは実行可能であると言われています。

Android のインストール場所と BOOT_COMPLETED

私はそのようなことはできないと推測しなければなりません。

それは本当にそうですか、それともSD上の私のアプリで起動時にブロードキャストを取得する方法があります.

それが不可能な場合、android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLEの使用は何ですか

これは、誰かが見たい場合に備えて、私のマニフェストです。私はAndroid 2.3.7でテストしています

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

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="17" />

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

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

.............................    

        <receiver
            android:name="mypackage.MyNotificationReceiver"
            android:enabled="true"
           >
            <intent-filter android:priority="1" >
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" />
            </intent-filter>

        </receiver>


    </application>

</manifest>

ありがとう

4

1 に答える 1