我的公司正在向我们的客户分发硬件(三星 galaxy tab 10.1)和软件(我的应用程序)。
我的 Intent 是“跳过”google 帐户链接并使用 adb 将我的生产签名应用程序直接安装到平板电脑上(与我上传到 google market 的 apk 相同)。这将使我能够为我们的客户预先配置平板电脑,将屏幕背景更改为我们的 Logo 等。
但是,一旦平板电脑交付给客户,我希望他们在平板电脑上附加一个谷歌帐户,并且仍然能够通过市场从我的应用程序中获取更新。在我的测试中,我手动安装的应用程序从未出现在谷歌市场的应用程序列表中。
这可能吗?
蒂姆
更新:我最终编写了一个“启动器”应用程序,我将手动将其安装在设备上。它有一项 Activity ,主题是:
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
Activity 有这个代码:
public class LauncherActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
startApplication("applicationnamehere");
finish(); // this kills the activity immediately.
}
public void startApplication(String application_name){
boolean successfulLaunch = false;
try{
Intent intent = new Intent("android.intent.action.MAIN");
intent.addCategory("android.intent.category.LAUNCHER");
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
List<ResolveInfo> resolveinfo_list = getPackageManager().queryIntentActivities(intent, 0);
for(ResolveInfo info:resolveinfo_list){
if(info.activityInfo.packageName.equalsIgnoreCase(application_name)){
Intent launch_intent = new Intent("android.intent.action.MAIN");
launch_intent.addCategory("android.intent.category.LAUNCHER");
launch_intent.setComponent(new ComponentName(info.activityInfo.packageName, info.activityInfo.name));
launch_intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(launch_intent);
successfulLaunch = true;
break;
}
}
}
catch (ActivityNotFoundException e) {
launchMarket();
}
if (!successfulLaunch)
launchMarket();
}
private void launchMarket() {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=packagenamegoeshere"));
startActivity(intent);
}
您可以将常量填充到 strings.xml 中。
它运行良好,唯一的问题是即使在用户安装了我的主应用程序之后,它仍会停留在主屏幕上。因为它(默认情况下)尝试为我的应用程序启动 LAUNCHER,所以这不是世界末日。
最佳答案
这应该是可能的 - 查看 Titanium Backup 的作用。它具有 Market Doctor 功能,可以在您使用 Titanium Backup 恢复 apk 和数据文件后重新建立到 Android Market 的链接。
您还可以尝试将出厂图像加载到某些手机或平板电脑上,跳过帐户创建过程,并查看包含的应用程序(如 Youtube、Facebook、Gmail、 map 等)的市场数据库是什么样子的。
关于android - 是否可以通过 adb 安装应用程序但仍然获得 Google Market 更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8842890/