我想在Android应用中添加"评价此应用"链接,以便在手机上打开用户Google Play商店应用中的应用列表.
market://or http://-link?market://或http://链接的屏幕,哪个最适合使用 - market://或者http://?我们以编程方式安装了应用程序
引导我.我不知道.谢谢.
我正在(最后)编写关于我书的任务的章节,我遇到了一些挥之不去的谜题.
作为主屏幕发射器的东西似乎使用FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_RESET_TASK_IF_NEEDED启动请求的启动器活动时的组合:
Intent i=new Intent(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(name);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
文档FLAG_ACTIVITY_RESET_TASK_IF_NEEDED包含:
如果设置,并且此活动要么在新任务中启动,要么将现有任务置于顶部,那么它将作为任务的前门启动.这将导致应用任务所需的任何关联性,以使该任务处于适当的状态(将活动移入或移出),或者仅在需要时将该任务重置为其初始状态.
那不是特别清楚.
特别是,它似乎是相同的效果将使用的组合可以看出FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_SINGLE_TOP.引用文档FLAG_ACTIVITY_CLEAR_TOP:
如果已设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给(现在开启) top)旧活动作为一个新的意图......
当前运行的[所需活动]实例将在其onNewIntent()方法中接收您从此处开始的新意图,或者本身已完成并使用新意图重新启动.如果它已将其启动模式声明为"多个"(默认值)并且您没有在同一意图中设置FLAG_ACTIVITY_SINGLE_TOP,那么它将被完成并重新创建; 对于所有其他启动模式或如果设置了FLAG_ACTIVITY_SINGLE_TOP,则此Intent将被传递到当前实例的onNewIntent().
该FLAG_ACTIVITY_CLEAR_TOP文档是有道理的,至少对我来说.
那么,这FLAG_ACTIVITY_RESET_TASK_IF_NEEDED与FLAG_ACTIVITY_CLEAR_TOPand 的组合FLAG_ACTIVITY_SINGLE_TOP有何不同?
如果您可以解释FLAG_ACTIVITY_CLEAR_TASK与上述其他两个选项中的任何一个不同的加分点.
如果在传递给Context.startActivity()的Intent中设置,则此标志将导致在活动开始之前清除与活动关联的任何现有任务.也就是说,活动成为否则为空任务的新根,并且任何旧活动都已完成.这只能与FLAG_ACTIVITY_NEW_TASK一起使用.
这和FLAG_ACTIVITY_CLEAR_TOP| 之间有一个明显的区别 FLAG_ACTIVITY_SINGLE_TOP是FLAG_ACTIVITY_CLEAR_TASK需要的FLAG_ACTIVITY_NEW_TASK.但是,除此之外,看起来净效果是相同的,也是匹配的FLAG_ACTIVITY_RESET_TASK_IF_NEEDED.
这是检查设备上已安装软件包的简单问题...在我将操作系统升级到2.3.5之前,我可以使用以下代码找到Market/Play商店:
private static final String GooglePlayStorePackageName = "com.google.market";
void someMethod() {
packageManager = getApplication().getPackageManager();
List<PackageInfo> packages = packageManager.getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES);
for (PackageInfo packageInfo : packages) {
if (packageInfo.packageName.equals(GooglePlayStorePackageName)) {
googlePlayStoreInstalled = true;
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
由于某些原因在更新后,我根本无法找到包名称来指示应用程序已安装,虽然它在设备上,我可以访问市场.
包名称是否已更改?或者我正在以错误的方式看待这个?
谢谢,
亚当.
更新:
这是检查包是否安装的愚蠢方法...更好的方法是:
protected final boolean isPackageInstalled(String packageName) {
try {
application.getPackageManager().getPackageInfo(packageName, 0);
} catch (NameNotFoundException e) {
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud) 我想直接从我的应用中打开Google Play商店.
这就是我现在正在做的事情.
try {
// Check whether Google Play store is installed or not:
this.getPackageManager().getPackageInfo(
"com.android.vending", 0);
url = "market://details?id=" + packageName;
} catch (final Exception e) {
url = "https://play.google.com/store/apps/details?id="
+ packageName;
}
// Open the app page in Google Play store:
final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
但问题是它在应用程序选择框中显示了其他应用程序.
我不想要这个如何避免Chooser盒并直接打开Play商店?
更新 :
通过使用此问题解决了此问题:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://search?q=foo"));
PackageManager pm = getActivity().getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(intent, 0);
for (int a = …Run Code Online (Sandbox Code Playgroud) 你好朋友我正在开发一个应用程序,我有一个要求从我的应用程序重定向用户到游戏商店,我搜索了很多但没有成功..代码如下
Button1.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v_arg) {
try {
Intent viewIntent =
new Intent("android.intent.action.VIEW",
Uri.parse("https://play.google.com/store/apps/details?id=com.adeebhat.rabbitsvilla/"));
startActivity(viewIntent);
}catch(Exception e) {
Toast.makeText(getApplicationContext(),"Unable to Connect Try Again...",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
Button2.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v_arg) {
try {
Intent viewIntent =
new Intent("android.intent.action.VIEW",
Uri.parse("market://details?id=com.adeebhat.rabbitsvilla/"));
startActivity(viewIntent);
}catch(Exception e) {
Toast.makeText(getApplicationContext(),"Unable to Connect Try Again...",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud) 如何在Android和IOS上使用flutter打开PlayStore/AppStore的特定URL,具体取决于它执行的智能手机?我的意思是我想打开应用程序而不是浏览器或类似的东西.
在这个线程中,我发现了一些原生的android方式,但我怎么能用颤动呢?
final String appPackageName = getPackageName(); // getPackageName() from Context or Activity object
try {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + appPackageName)));
} catch (android.content.ActivityNotFoundException anfe) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + appPackageName)));
}
Run Code Online (Sandbox Code Playgroud)
如果目前无法做到这一点,那么为插件url_launcher实现它将是一个很好的功能.
这个想法是在我的应用程序上创建一个赞助区域,该区域上的每个链接都将指向 google playstore 上的应用程序链接。
我的问题:
此方法是否被 Google 指南禁止或不会导致我的应用程序暂停?
谢谢
如果我启动Android上的"Play Games"图标并转到我的游戏,我可以点击我的应用程序进入相关页面.当用户点击我的应用程序中的按钮时,是否可以以编程方式进入此处?
注意:我不想在Google Play商店中打开该应用!,这是我想要的游戏播放服务中的应用页面!
我知道有关于此问题有几个问题,但没有一个问题有助于解决我的问题.
我希望能够从电子邮件/文本/浏览器中单击链接并打开我的应用程序.
我有AndroidManifest.xml代码:
<!-- Splash Activity -->
<activity
android:name=".ui.SplashActivity"
android:label="@string/app_name"
android:theme="@style/SplashTheme"
android:launchMode="singleTask">
<!-- Launcher intent filter -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<!-- Branch URI scheme -->
<intent-filter>
<data android:scheme="myscheme" android:host="open" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
这似乎完全遵循此处的文档,但是,当我使用Chrome(或Android浏览器)浏览时myscheme://open,我的应用程序无法打开,而是我获得了myscheme:// open的 Google搜索结果.
任何人都能看到我在这里失踪的那块拼图吗?如何让我的应用程序通过URI打开?
小更新:
阅读本文后,我发现导航Chrome market://details?id=com.myapp并没有打开游戏商店.相反,它会返回Google搜索结果 - 与尝试直接启动我的应用时相同.这令人困惑.我是否缺少全局操作系统设置以允许深层链接?
在PhoneGap的/科尔多瓦文件由大做了解释在config.xml文件中的各种意图和其他位的目的,一个伟大的工作.但是,我无法确定以下内容的含义/用途
<platform name="android">
<allow-intent href="market:*" />
</platform>
<platform name="ios">
<allow-intent href="itms:*" />
<allow-intent href="itms-apps:*" />
</platform>
Run Code Online (Sandbox Code Playgroud)
我非常感谢任何能够解释他们打算做什么的人.