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