試圖獲得一個非常簡單的SMS廣播接收器在我的KitKat手機上工作,但沒有任何工作。讓我有點瘋狂。我不需要做任何事情,只需閱讀短信,所以我不認爲KitKat中的大型短信變化會影響我。我讀過很多帖子,嘗試了一切。無法在KitKat中讀取短信,非常困惑
從我讀過的東西我應該只需要SMS_DELIVER_ACTION做一個簡單的文本嗅探。我已將READ_SMS和RECEIVE_SMS置於清單權限中。我剛開始時只用READ_SMS。我假設接收首先給它的應用程序,可能是由KitKat「默認」短信行爲短路。順便說一句,我已經做的任何事情都不會讓我的應用程序顯示在默認的短信系統設置。
我有一個令人難以置信的簡單的應用程序,它有1個活動,1個broadcastreceiver類,它在清單中註冊。在onReceive中,我正在嘗試寫入LogCat,並在文本進入時顯示敬酒。沒有任何內容會碰到該代碼。
這裏是我的清單:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.smoftware.smsreceivertest.app" >
<uses-permission android:name="android.permission.READ_SMS"/>
<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=".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:permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_DELIVER_ACTION"/>
</intent-filter>
</receiver>
</application>
</manifest>
和我的廣播接收器...
public class SMSReceiver extends BroadcastReceiver {
public SMSReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"in onReceive of SMSReceiver",Toast.LENGTH_LONG).show();
Log.d("SMSReceiver", "In body of onReceive method");
}
}
我有一個主要活動,但它只是一個HelloWorld模板。我一定要這樣做,因爲我已經閱讀了3.1版本的變化,如果尚未啓動,它會使廣播接收器無法運行。
不應該有這個在調試運行的問題,應該嗎?即使如此,我已經停止了應用程序並重新啓動,以便它已被手動打開。
謝謝!
更改'<意圖過濾器>'行動' 「android.provider.Telephony.SMS_RECEIVED」'。 –