2

シンプルなSMSアプリを作成していますが、新しいSMSを受信したときにアプリを自動的に開きたいですか?それも可能ですか? 私はこれに放送受信機を使用しています

マニフェストでどのような変更を加える必要がありますか?

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

<uses-sdk android:minSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".MessageActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

        <receiver android:name=".SmsReceiver" >
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
    </activity>
    <activity android:name=".Reply" >
    </activity>
 </application>

<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />

</manifest>
4

3 に答える 3

2

次のようなアクティビティからレシーバーを外部に移動する必要があります。

 <application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".MessageActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Reply" >
    </activity>
<receiver android:name=".SmsReceiver" >
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            </intent-filter>
        </receiver>
 </application>
于 2012-08-12T10:51:10.927 に答える
1

Android 3.0以降では、ユーザーがアプリケーションを開かない限り、ブロードキャストが受信される保証はありません。アプリケーションを開いたままにする必要はなく、一度起動するだけです。これは、現在ほとんどのシステムブロードキャストの一部であるフラグ(FLAG_EXCLUDE_STOPPED_PACKAGES)が原因で発生します。これは、ブロードキャストが停止したアプリケーションを開始してはならないことを示します。

于 2012-08-12T10:50:44.240 に答える
0

これは、Androidが受信した特定のSMSでアプリケーションを起動して短くする方法ですでに回答されています。これは、BroadcastReceiverで可能です。

于 2012-08-12T10:50:55.807 に答える