【问题标题】:Check for which package the Broadcast Receiver was intended检查广播接收器用于哪个包
【发布时间】:2016-11-23 05:02:56
【问题描述】:

我想将 INSTALL_REFERRER 广播发送到我的应用程序以进行代码引用,但是当我尝试检索广播的包名称时出现空指针异常:

intent.getPackage();  // returns null

这是我正在使用的代码。

在 BroadcastReceiver 类中:

@Override
public void onReceive(Context context, Intent intent) {
    if (intent == null)
        return;
    String pack = context.getPackageName().toString();
    String intentpack = intent.getPackage();
    intentpack = intent.getDataString();
    if (intentpack.equals(pack))

我在清单文件中添加了意图过滤器:

<receiver android:name=".MyReceiver">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>

我从 ADB SHELL

发送广播
am broadcast -a com.android.vending.INSTALL_REFERRER -n <package.name>/.MyReceiver --es "key" "multiple values here"

【问题讨论】:

    标签: android broadcastreceiver package


    【解决方案1】:

    我更改了代码

    intent.getPackage()
    

    intent.getComponent().getPackageName();
    

    它成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多