“未发现处理意图的活动”并非所有手机都安装了Android Market
并非所有手机都安装了Android Market,因此使用intent to open Market应用程序失败 最好的处理方法是什么 如果用户未安装Android Market,则隐藏此功能。我将如何检测此功能?。 处理可能的错误,如何以及可能如何建议用户下载Android Market?“未发现处理意图的活动”并非所有手机都安装了Android Market,android,android-intent,Android,Android Intent,并非所有手机都安装了Android Market,因此使用intent to open Market应用程序失败 最好的处理方法是什么 如果用户未安装Android Market,则隐藏此功能。我将如何检测此功能?。 处理可能的错误,如何以及可能如何建议用户下载Android Market? 如果您的应用程序由Android Market提供,那么它确实安装了Android Market: 好吧,这是斯奈德,但有一个重要的事实——谷歌付出了巨大的努力,在设备上实施兼容性保证,以便允许它们与And
如果您的应用程序由Android Market提供,那么它确实安装了Android Market: 好吧,这是斯奈德,但有一个重要的事实——谷歌付出了巨大的努力,在设备上实施兼容性保证,以便允许它们与Android Market一起发布,因此,这就是你如何知道你正在运行的任何东西都会正常运行的方式 如果你是从Android Market以外的其他地方交付应用程序,你需要从交付应用程序的人那里获得有关其兼容性保证的信息 如果他们没有兼容性保证,或者你只是在网站上放了一个raw.apk之类的东西,那么你就完蛋了。您正在运行的设备可能已经以几乎任何方式修改了其软件,并且在您可以想象的行为上有任何不同
也就是说,如果您想确定当前设备上是否存在处理特定意图的活动,您可以使用以下命令:如果您的应用程序由Android Market提供,则它确实安装了Android Market: 好吧,这是斯奈德,但有一个重要的事实——谷歌付出了巨大的努力,在设备上实施兼容性保证,以便允许它们与Android Market一起发布,因此,这就是你如何知道你正在运行的任何东西都会正常运行的方式 如果你是从Android Market以外的其他地方交付应用程序,你需要从交付应用程序的人那里获得有关其兼容性保证的信息 如果他们没有兼容性保证,或者你只是在网站上放了一个raw.apk之类的东西,那么你就完蛋了。您正在运行的设备可能已经以几乎任何方式修改了其软件,并且在您可以想象的行为上有任何不同
也就是说,如果您想确定当前设备上是否存在处理特定意图的活动,您可以这样做:使用网址作为意向目标,然后如果没有android market,它将在浏览器中打开。使用网址作为意向目标,然后如果没有android market,它将在浏览器中打开。以上答案的问题是,如果您只传递一个URL,则会提示用户如何处理意图 在IMO上,一种更优雅的方法是测试market应用程序是否已安装,如果未安装,则传递一个URL,实际上您希望测试该URL,看看是否有东西可以处理该意图,但是如果你碰巧有一台没有play store和浏览器的设备,那么我会问为什么用户会首先安装我的应用程序,我想是另一个故事 也许有更好的方法,但以下是对我有效的方法:
private String getMarketURI(String marketURL) {
String returnURL = "";
PackageManager packageManager = getApplication().getPackageManager();
Uri marketUri = Uri.parse("market://" + marketURL);
Intent marketIntent = new Intent(Intent.ACTION_VIEW).setData(marketUri);
if (marketIntent.resolveActivity(packageManager) != null) {
returnURL = "market://" + marketURL;
} else {
returnURL = "https://play.google.com/store/apps/" + marketURL;
}
return returnURL;
}
然后像这样使用它:
marketIntent.setData(Uri.parse(getMarketURI("details?id=com.yourapps.packagename")));
以上答案的问题是,如果您只传递一个URL,用户将被提示如何处理该意图 在IMO上,一种更优雅的方法是测试market应用程序是否已安装,如果未安装,则传递一个URL,实际上您希望测试该URL,看看是否有东西可以处理该意图,但是如果你碰巧有一台没有play store和浏览器的设备,那么我会问为什么用户会首先安装我的应用程序,我想是另一个故事 也许有更好的方法,但以下是对我有效的方法:
private String getMarketURI(String marketURL) {
String returnURL = "";
PackageManager packageManager = getApplication().getPackageManager();
Uri marketUri = Uri.parse("market://" + marketURL);
Intent marketIntent = new Intent(Intent.ACTION_VIEW).setData(marketUri);
if (marketIntent.resolveActivity(packageManager) != null) {
returnURL = "market://" + marketURL;
} else {
returnURL = "https://play.google.com/store/apps/" + marketURL;
}
return returnURL;
}
然后像这样使用它:
marketIntent.setData(Uri.parse(getMarketURI("details?id=com.yourapps.packagename")));
用户无法下载Android Market。用户无法下载Android Market。