Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android Market上,我可以使用什么意图过滤器来捕获对权限屏幕的意图调用?_Android_Google Play_Intentfilter - Fatal编程技术网

在Android Market上,我可以使用什么意图过滤器来捕获对权限屏幕的意图调用?

在Android Market上,我可以使用什么意图过滤器来捕获对权限屏幕的意图调用?,android,google-play,intentfilter,Android,Google Play,Intentfilter,我正在创建一个应用程序,在用户从Android Market下载一个应用程序(比如一个要求阅读用户联系信息的墙纸应用程序)之前,它会警告用户奇怪的权限请求。当用户按下安装按钮并显示使用权限列表时,是否有方法捕获调用的意图 据我所知,没有办法做到这一点。您可以在用户安装应用程序后立即向用户显示对话框(大多数情况下,在用户运行应用程序之前): AndroidManifest.xml <receiver android:name=".Receiver"> <intent-fi

我正在创建一个应用程序,在用户从Android Market下载一个应用程序(比如一个要求阅读用户联系信息的墙纸应用程序)之前,它会警告用户奇怪的权限请求。当用户按下安装按钮并显示使用权限列表时,是否有方法捕获调用的意图


据我所知,没有办法做到这一点。您可以在用户安装应用程序后立即向用户显示对话框(大多数情况下,在用户运行应用程序之前):

AndroidManifest.xml

<receiver android:name=".Receiver">
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_ADDED" />
        <action android:name="android.intent.action.PACKAGE_CHANGED"/>
        <data android:scheme="package"/>
    </intent-filter>
</receiver>

当你说在大多数情况下,在他们运行它之前,你的意思是说在应用程序安装和运行之间有一些情况吗?例如,是否可以立即启动服务?只需将我提供给您的代码放在您的项目中,尝试从Market安装应用程序,并尝试在安装后立即打开它们。在大多数情况下,你输掉了比赛,甚至在你点击“打开”按钮之前接收器就会被呼叫,即使你在广播启动之前点击它,你的代码仍然会被执行。好吧,这不是我想要的答案,但如果不做一些重大的黑客攻击,这是我最好的选择(我曾尝试过c2dm劫持,但Android Market使用签名验证,在不知道如何访问数据包的情况下,这将不得不这么做)。
public class Receiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
          try {
              PackageManager manager = this.getPackageManager();
              PackageInfo info = manager.getPackageInfo(
                  intent.getData().getSchemeSpecificPart(), 0);
              Toast.makeText(context, "Look at these suspicious permissions:"+
                  info.permissions, Toast.LENGTH_LONG).show();
          } catch (Exception e) {}
    }
}