0

我实现了这样的 CarrierMessagingService:

public class MyService extends CarrierMessagingService {

    public void onReceiveTextSms(@NonNull MessagePdu pdu, @NonNull String format,
                                 int destPort, int subId, @NonNull final ResultCallback<Integer> callback) {
        Log.i("MyService","onReceiveSms");
    }
}

有了这个清单:

<application
        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>

        <service android:name=".MyService"
            android:permission="android.permission.BIND_CARRIER_SERVICES">
            <intent-filter>
                <action android:name="android.service.carrier.CarrierMessagingService" />
            </intent-filter>
        </service>
    </application>

然后我给自己发了一条短信。我希望能够到达我放入 CarrierMessagingService 的 onReceiveTextSms 方法中的日志......但是我没有到达它。这是为什么?

4

1 回答 1

1

android.permission.BIND_CARRIER_SERVICES是一个privileged权限。

即使您在清单中声明,也无法授予您此权限。它保留给运营商或 OEM。

您可以在此处阅读有关特权权限的更多信息

于 2019-08-20T09:33:50.930 回答