【问题标题】:how can i get a resultcode when i use 'startActivity' to install an apk当我使用“startActivity”安装 apk 时如何获得结果代码
【发布时间】:2013-04-15 03:17:50
【问题描述】:

我安装了一个保存在/data/data/package_name/files目录中的apk,代码如下:

Uri uri = Uri.fromFile(new File(apkSavingPath));
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri,"application/vnd.android.package-archive");
mContext.startActivity(intent);

我希望它返回一个结果码告诉我apk是否安装成功,我尝试了startActivityForResult的方法,但没有成功。

onActivityResult的方法上,无论apk安装成功与否,它的resultCode总是0(zero)。我能得到这样的结果码吗?

【问题讨论】:

标签: android


【解决方案1】:

试试这个。

Intent intent = new Intent(Intent.ACTION_VIEW);           
intent.setDataAndType("ApkFilePath...","application/vnd.android.package-archive");
activity.startActivityForResult(intent,5000);

在 AndroidManifest.xml 中添加您的接收器

<receiver android:name=".PackageReceiver" android:enabled="true" android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_ADDED" />
        <action android:name="android.intent.action.PACKAGE_CHANGED" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:scheme="package" />
    </intent-filter>
</receiver>

这个类会在安装新包时被调用:

public class PackageReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    // handle install event here
  }
}

【讨论】:

  • 谢谢!有效。但是在添加android:enabled="true" android:exported="true" 之后。我编辑了你的答案。
猜你喜欢
  • 2016-04-04
  • 2018-06-20
  • 2015-07-11
  • 1970-01-01
  • 2014-05-28
  • 2019-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多