Ứng dụng của tôi không nhận được SMS khi cài đặt SMS Go. Tôi đặt mức ưu tiên cao nhất và đã thử cài đặt ứng dụng của mình trước khi cài đặt ứng dụng Go SMS. Tuy nhiên, Go SMS luôn nhận được tin nhắn SMS trước tôi. (Khái niệm được cài đặt ứng dụng đầu tiên không hoạt động trên điện thoại của tôi.)không nhận được tin nhắn ngay cả khi đặt ưu tiên cao nhất và được cài đặt trước tiên
Tôi tò mò về những gì các nhà phát triển Go SMS làm. Làm cách nào để ứng dụng của họ có thể chặn SMS trước tôi?
Ứng dụng của tôi hoạt động tốt mà không có SMS đi. Dù sao, đây là biểu hiện của tôi. Có lẽ tôi đã làm sai điều gì đó.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.ansmsreceiver"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<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.test.ansmsreceiver.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="com.test.ansmsreceiver.SMSReceiver" >
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
<action android:name="android.provider.Telephony.NEW_OUTGOING_SMS" />
</intent-filter>
</receiver>
</application>
tôi thấy khác questions liên quan đến vấn đề của tôi, nhưng vẫn không thể tìm ra cách để sửa chữa nó.
Chỉnh sửa: dự án thử nghiệm của tôi nằm trên Github: https://github.com/entryleveldev/ansmsreceiver.
Chỉnh sửa2: vẫn không chắc cách android quyết định người nhận nào có ý định trước. Từ những gì tôi đã thử nghiệm, Go SMS luôn nhận được ý định. UID và trật tự cài đặt không quan trọng. Nhưng khi tôi thử nghiệm ứng dụng và SMS Handcent, thứ tự cài đặt không quan trọng. Có thể Go SMS sử dụng một số loại một cách hacky để làm điều này.
Đây là SmsReceiver trong tệp kê khai Go SMS.
<receiver android:name=".smspopup.SmsReceiver" 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>
<intent-filter android:priority="2147483647">
<action android:name="android.provider.Telephony.GSM_SMS_RECEIVED"></action>
<category android:name="android.intent.category.DEFAULT"></category>
</intent-filter>
<intent-filter >
<action android:name="android.provider.Telephony.WAP_PUSH_RECEIVED"></action>
<data android:mimeType="application/vnd.wap.mms-message"></data>
</intent-filter>
<intent-filter >
<action android:name="com.android.mms.transaction.MESSAGE_SENT"></action>
</intent-filter>
</receiver>
Cài đặt mặc định của họ là tắt thông báo tin nhắn khác (abortBroadcast). Điều này thực sự tệ với tôi.
Bạn đã cố gắng sao chép bộ lọc ý định của họ và xem liệu bộ lọc có khác biệt không? – Darwind
Tôi đã thử điều đó. – pt2121
Hmm ok - Tôi thực sự có cùng một vấn đề bản thân mình trong một ứng dụng của tôi, nhưng tôi chỉ sống với nó ;-) Bạn cũng đã thêm thẻ quyền trên người nhận như họ đã làm? Nếu không thể ghi đè ưu tiên của họ, họ phải sử dụng một số loại hack để thực hiện công việc này. – Darwind