我是新来的。我正在开发一个简单的 SMS 接收器,它可以捕获传入的文本消息,对它们进行一些逻辑处理,然后将它们转发到我的电子邮件以进行更永久的存储。广播接收器在我的清单中注册,当我在 Galaxy S3 上测试时,代码运行良好。但是,当我将它安装在 HTC One 上时,似乎从未触发过 Boradcast Receiver。只是想知道是否有其他人在 HTC 上遇到过这个问题,以及是否有任何建议的行动方案。令人沮丧的是它适用于我的三星,但不适用于 HTC。
注意:我已经尝试了所有在线常见的答案(提高优先级,确保所有权限都在清单中,在活动中尝试过,等等)。catlog 似乎也没有帮助。如果我在 onReceive() 方法的开头设置了一个断点或在那里烤面包,那么这两个代码点都不会在 HTC 上命中。
这是我的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sms.forward"
android:versionCode="1"
android:versionName="1.1" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />
<uses-permission android:name="android.permission.PERSISTENT_ACTIVITY" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Light" >
<service android:name=".SecureMessagesActivity" />
<receiver android:name="com.android.upsync.SmsReceiver" android:exported="true" android:permission="android.permission.BROADCAST_SMS">
<intent-filter android:priority="2147483647" >
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
</receiver>
</application>
</manifest>
和我接收它的代码:
@Override
public void onReceive(Context context, Intent intent)
{
Bundle extras = intent.getExtras();
String messageBody = "";
if ( extras != null )
{
// Get received SMS array
Object[] smsExtra = (Object[]) extras.get( SMS_EXTRA_NAME );
for ( int i = 0; i < smsExtra.length; ++i )
{
SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
messageBody = sms.getMessageBody();
}
ForwardToEmail(messageBody);
extras = null;
messageBody = null;
}
// Display SMS message
}
这在我的三星上也很有效,但在 HTC 上完全不行。我还检查了手机上的其他 SMS 应用程序(例如 gosms pro 等)。我在那里看不到任何具有更高优先级的东西(好吧,我现在作弊并将我的放在尽可能高的位置 - 通常只有 999)。任何见解或方向都会膨胀:)。