Android HTC一台广播接收机不工作

Android HTC一台广播接收机不工作,android,broadcastreceiver,android-manifest,smsmanager,Android,Broadcastreceiver,Android Manifest,Smsmanager,由于某些原因,HTC One不允许应用程序监听任何传入的短信。在调试过程中,它甚至不点击onReceive方法。我已经看过了,但没帮上忙。 这是HTC设备的已知问题吗 HTC One:Android 4.3从3.1开始安装应用程序时,它们处于“停止”状态,因此在用户明确启动之前无法运行。按“强制停止”将使其返回此状态 因此,当应用程序第一次安装时,系统会完全忽略它们,除非用户手动启动某些东西:很可能是单击启动程序活动或添加应用程序小部件。 在用户未手动启动应用程序之前,您的应用程序不会接收任何广

由于某些原因,HTC One不允许应用程序监听任何传入的短信。在调试过程中,它甚至不点击onReceive方法。我已经看过了,但没帮上忙。 这是HTC设备的已知问题吗


HTC One:Android 4.3从3.1开始安装应用程序时,它们处于“停止”状态,因此在用户明确启动之前无法运行。按“强制停止”将使其返回此状态

因此,当应用程序第一次安装时,系统会完全忽略它们,除非用户手动启动某些东西:很可能是单击启动程序活动或添加应用程序小部件。 在用户未手动启动应用程序之前,您的应用程序不会接收任何广播。检查

在我的HTC One上尝试了这个,效果很好

将您的接收器更改为:


这个应用程序在运行4.4的Nexus5上运行良好,甚至没有明确启动它。即使在HTC one上手动启动应用程序后,广播接收器仍然无法工作。它真的工作吗?我的意思是即使在用户强制关闭应用程序之后???@UsmanRiaz如果应用程序是从设置appmanager强制关闭的,则强制关闭应用程序,这显然是任何应用程序都无法工作的,因为没有该应用程序的实例,也不可能有侦听器来侦听这些事件。但是,如果应用程序关闭,则DAPP被破坏,这确实有效。。只需确保在onResume中注册接收方,在onPause中注销接收方。实际上,我想通过调用调用应用程序。因此,我在menifest.xml中注册了新的呼出呼叫接收器。另外,我没有启动活动,也就是说,用户必须拨打他的pin才能启动应用程序。我听说从android 3.1开始,这个功能就被禁用了。用户必须手动启动应用程序才能让广播接收器工作。你们有其他解决方案吗?假设我有启动程序活动,用户第一次手动启动,然后由于某种原因,它在设置中被强制关闭,或者手机可能会重新启动?有什么解决办法吗?现在启动广播接收器的意义是什么?我的意思是,当系统启动ofc时,你们的应用程序将处于停止状态,它将不会收到它。可能是一个延迟响应。为了回应@UsmanRiaz,是的,这似乎确实有效。
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<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" />   
<receiver android:name="com.example.set.sms" >
    <intent-filter>
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
    </intent-filter>
</receiver>
         <receiver android:name="com.example.set.sms" >
         <intent-filter>
         <action android:name="android.provider.Telephony.SMS_RECEIVED" />
         </intent-filter>
         </receiver>
        <receiver android:name="com.mike.broadcastexample.BroadcastReceiverClass" android:exported="true" > 
        <intent-filter android:priority="999" > 
        <action android:name="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter> 
        </receiver>