2012-12-14 61 views
1

我只是想知道爲什麼我的簡單短信接收器可以在我的模擬器(2.3)上工作,但不能在我的手機(2.3)上工作。Android - 短信廣播接收器在模擬器上工作,但不在電話上

我的簡單程序會在我收到新短信時顯示敬酒。 它在仿真器上顯示,並且不在電話上顯示。

我試過兩個模擬器,它的工作原理。

這裏是代碼。

public class SMSReceiver extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    System.out.println("A new message just arrived."); 
    Toast.makeText(context, "weee", Toast.LENGTH_LONG).show(); 
} 

} 

清單:

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

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="16" /> 

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

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.smsreceiver.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

    <receiver android:name=".SMSReceiver" android:exported="true"> 
     <intent-filter> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
     </intent-filter> 
    </receiver> 

</application> 

</manifest> 
+0

任何logcat輸出? – Akdeniz

+0

你好@Akdeniz,我發現了這個問題。這是因爲GO SMS。他們在處理收到的消息後中止SMS廣播。 – user1732887

回答

1

你的廣播接收器被中止。 增加優先級將解決問題。

<receiver> 
<intent-filter android:priority="999"> 
<action: .... > 
</receiver> 

在清單中設置優先級。這應該做的。

相關問題