这是我第一次尝试制作 Android 应用程序。它是一个简单的 SMS 侦听器,然后将 SMS 显示为 Toast。
public class SmsReciever extends BroadcastReceiver {
String msgBody = null;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals("android.provider.Telephony.SMS_RECIEVED")){
Bundle bundle = intent.getExtras();
SmsMessage[] msg = null;
String msg_from;
if(bundle != null)
{
try{
Object[] pdus = (Object[]) bundle.get("pdus");
msg = new SmsMessage[pdus.length];
for(int i=0;i<msg.length;i++)
{
msg[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
msg_from = msg[i].getOriginatingAddress();
msgBody += msg[i].getMessageBody();
}
}catch(Exception e)
{
Log.d("Exception caught",e.getMessage());
}
Toast.makeText(context, msgBody, Toast.LENGTH_SHORT).show();
}
}
}}
我收到以下错误:
java.lang.RuntimeException: Unable to instantiate receiver com.example.droid.SmsReceiver: java.lang.ClassNotFoundException: com.example.droid.SmsReceiver
我向你保证 SmsReciever.java 在 droid/src 中。我花了整夜研究这个问题。请帮忙。
编辑:这是您要求的清单 xml 文件。
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.READ_SMS" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" android:permission="android.permission.RECEIVE_SMS">
<activity
android:name=".JarvisActivity"
android:label="@string/title_activity_jarvis" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SecureMessagesActivity" 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="false" >
<intent-filter android:priority="1000">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
</manifest>
编辑:我做了一些研究,发现在我的清单文件中我有一个指向SecureMessagesActivity的活动标签。但是在我的整个项目中,我没有那个名字的活动。那么这是问题所在吗?
编辑:好的,所以我从清单文件中删除了 SecureMessageActivity 部分,我猜它删除了错误。现在我收到了这个 Permisssion 拒绝消息:
Permission Denial: receiving Intent { act=android.provider.Telephony.SMS_RECEIVED flg=0x10 (has extras) } to net.learn2develop.SMSMessaging requires android.permission.RECEIVE_SMS due to sender com.android.phone (uid 1001)
我还使用net.learn2develop.SMSMessaging活动试图复制另一个代码以达到相同的目的,但现在我已经删除了整个项目并多次清理了我自己的项目。这种活动仍然一次又一次地到来。 编辑 查克,我很快就会重新开始......感谢所有输入。