在广播接收器中具有权限的接收无法正常工作

时间:2019-07-07 07:12:26

标签: android broadcastreceiver

在android文档(https://developer.android.com/guide/components/broadcasts#receiving-broadcasts-permissions)中说:

  

如果在注册广播时指定了权限参数   接收器(通过registerReceiver(BroadcastReceiver,   IntentFilter,String,Handler)或清单中的标记),   然后只有那些请求许可的广播公司    标记在清单中(随后被授予   如果有危险,则可以将意图发送给接收者。

但是,当我在接收方标签中指定 SEND_SMS 权限时,即使我的应用程序没有 SEND_SMS 权限,接收方仍会接收广播。

我在Android清单中注册了接收者:

<receiver android:name=".Demo"
            android:permission="android.permission.SEND_SMS">
            <intent-filter>
                <action android:name="demoFilter"/>
            </intent-filter>
</receiver>

演示类:

package com.android.wave;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class Demo extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Toast.makeText(context, intent.getStringExtra("Data"), Toast.LENGTH_LONG).show();
    }
}

我正在使用MainActivity的onCreate方法发送广播:

sendBroadcast(new Intent("demoFilter").putExtra("Data", "some data"));

我的应用具有的权限: enter image description here

当我的mainActivity启动时,我收到了吐司消息“一些数据”。因为我的应用程序没有接收方需要的许可,所以我不应该得到哪个。

0 个答案:

没有答案