2012-08-12 3 views
2

간단한 SMS 앱을 만들고 있는데, 새 SMS를 받으면 자동으로 앱을 열려고합니까? 도 가능합니까? 여기에 브로드 캐스트 리시버를 사용하고 있습니다내 앱이 닫힌 경우에도 receveir 작업을 브로드 캐스트 할 수 있습니다.

매니페스트에서 어떤 변경을해야합니까?

<?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> 
+0

당신이 (코드 사용) 활동 수준에서 매니페스트 수준에서 수신기를 추가하고 있지 않은 경우 작동한다고 생각합니다. –

+0

정확히 어떻게 그 shashank 할 수 있습니까 ?? 나는 안드로이드에있는 새내기이다 –

+0

나는이 문제가 너무있다. 내 수신자가 활동 레벨을 벗어나지 만 앱이 닫히면 알림이있는 상태에서 열어 본 후 아무 것도 들지 않습니다. – Kenji

답변

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> 
+0

아직 작동하지 않음 :(, but thanx –

1

Android 3.0 이상에서는 사용자가 애플리케이션을 열어야 만 브로드 캐스트를 수신 할 수 있습니다. 응용 프로그램을 열어 두지 않고 한 번만 시작하면됩니다. 이것은 이제 대부분의 시스템 브로드 캐스트의 일부인 플래그 (FLAG_EXCLUDE_STOPPED_PACKAGES)로 인해 발생합니다. 브로드 캐스트는 중지 된 응용 프로그램을 시작해서는 안됩니다.

+0

예, 몇 차례 작동합니다 (1 aut of 20 raughly). BTW는 내가 지금 무엇을 할 수 있는지 말해줘? –

관련 문제