标签: android-package-managers

如何在多用户系统中获取活动的 UserHandle

我有一个在后台运行的服务来监控前台活动。目前这个不区分用户(多用户帐户Android 4.2)。有没有办法让服务可以将它运行的用户与前台活动的用户进行比较?我只对运行该服务的同一用户帐户的活动感兴趣。

我知道我可以使用:

android.os.Process.myUserHandle()
Run Code Online (Sandbox Code Playgroud)

获取运行服务的 UserHandle。但是我在文档中看不到任何可以为我提供正在运行的活动(ActivityManager.RunningAppProcessInfo 等)的 UserHandle 的内容。

有任何想法吗?

android android-package-managers android-activity

7
推荐指数
2
解决办法
8805
查看次数

为什么没有找到处理 Intent 的 Activity?

getPackageManager().getLaunchIntentForPackage("com.example.app")我想自己创建启动意图,而不是常规方式。

Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setPackage("com.example.app");
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

如果 Activitycom.example.app已安装、启用且具有正确的清单,为什么 Android 找不到 Activity ?(它与getLaunchIntentForPackage.完美配合。)

android android-intent android-package-managers

7
推荐指数
2
解决办法
5054
查看次数

以编程方式在android上安装APK

我一直试图让一个Android应用程序以编程方式在SD卡上安装APK,但我遇到了一些麻烦.

这就是我这样做的方式:

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

现在工作正常,它带来了包管理器,我可以控制在经理完成安装APK时要做什么.

但我遇到的问题是,如果在安装结束时用户单击"打开"而不是"完成",则不会调用"OnActivityResult"方法,因为管理器仍然存在....并且关于系统的另一个要求的另一个问题.

有没有办法知道用户何时在包管理器的末尾选择了"打开",或者是否有办法强制管理器只显示我希望它显示的按钮?

真的可以使用帮助,我到处搜索,似乎没有找到解决方案

android install apk android-package-managers

6
推荐指数
1
解决办法
9081
查看次数

有没有办法将Android清单中的元数据保密到包中?

我想在Android清单中使用元数据来自定义服务的行为.

<service
    android:name=".SampleService"
    android:exported="false">
    <meta-data
        android:name="sampleName"
        android:resource="@string/sampleValue" />
</service>
Run Code Online (Sandbox Code Playgroud)

我的服务是库的一部分,有些人可能会在使用我的服务时将敏感数据放入这些属性中.即使服务未导出,这些元数据属性是否可通过PackageManager对手机上的其他已安装软件包可见?

service android metadata android-manifest android-package-managers

6
推荐指数
1
解决办法
2181
查看次数

Android ADB Shell不启用包

我要求pm(包管理器)启用一些包,但是它没有启用并显示消息" new state:disabled "

shell @ android:/ $ pm启用my.app.com

打包my.app.com新状态:已禁用

奇怪......这似乎是一个错误......

搭载Android 4.0.3的三星GT-P3100

任何想法如何解决?

android adb apk android-package-managers samsung-mobile

6
推荐指数
1
解决办法
1670
查看次数

在android中卸载应用程序时调用广播接收器

我想在应用程序上清理我的应用程序创建的垃圾UnInstalling.

使用ManiFest文件: -

在清单文件中添加:

 <receiver android:name="com.netdoers.com.ui.CleanReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_REMOVED" >
            </action>
            <data android:scheme="package"/>
        </intent-filter>
    </receiver>
Run Code Online (Sandbox Code Playgroud)

创建接收器以捕获 BroadCast Event

public class CleanReceiver extends BroadcastReceiver
{
  public void onReceive(Context context, Intent intent) {
    CustomToast.showToastMessage(context, "Uninstalling Application");
    Log.e("Uninstall", "CleanReceiver Called");
  }
} 
Run Code Online (Sandbox Code Playgroud)

在Java代码: -

 BroadCastReceiver br = new CleanReceiver();
 IntentFilter intentFilter = new IntentFilter();
 intentFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
 intentFilter.addDataScheme("package");
 registerReceiver(br, intentFilter);
Run Code Online (Sandbox Code Playgroud)

但是在卸载应用程序时,接收器从未被调用过.

Java和Manifest都不会在卸载应用程序时调用Receiver.如何在卸载应用程序时捕获广播事件?

android android-package-managers android-broadcast

6
推荐指数
1
解决办法
7015
查看次数

Android:从Android代码获取APK minSdkVersion

我正在开发一个Android应用程序,如果用户需要,它可以安装其他应用程序(作为我的应用程序的插件).

但是,这些附加应用中的每一个都可能需要运行特定的Android版本.我想在运行时执行检查,看看我正在尝试安装的APK是否实际上与设备兼容.

现在,使用以下方法:

public PackageManager getPackageArchiveInfo(String archiveFilePath, int flags)
Run Code Online (Sandbox Code Playgroud)

我可以获得一个APK文件的信息.然而,问题是返回的信息似乎只包括APK targetSdkVersion但不包括minSdkVersion,我理解的是实际确定Android的最低版本可以安装/运行的应用程序.的targetSdkVersion,如果我理解正确的仅仅是"最佳"的版本.

所以,长话短说,如何确定Android cna是否可以在Android设备上运行?(我知道我可以在桌面上使用AAPT,但这不适用于Android本身)

android apk android-package-managers

6
推荐指数
1
解决办法
784
查看次数

应用程序更新丢失所有数据作为pkg更改的代码/资源路径

我们最近向Google Play提交了我们的更新,并且有少数用户报告了他们所有数据消失的问题.

我们设法重现了一次这个问题,它是由以下原因引起的:

5787 08-17 12:50:56.309 937 1030 W PackageManager: Code path for pkg : com.attidomobile.passwallet changing from /data/app/com.attidomobile.passwallet-2 to /data/app/com.attidomobile.passwallet-1

5789 08-17 12:50:56.309 937 1030 W PackageManager: Resource path for pkg : com.attidomobile.passwallet changing from /data/app/com.attidomobile.passwallet-2 to /data/app/com.attidomobile.passwallet-1
Run Code Online (Sandbox Code Playgroud)

请注意,这与Android App更新中pkg的资源/代码路径更改不同.我们正在ProGuarding我们的应用程序,但它正在安装的实际文件夹正在改变.

有没有人经历过这个,或者知道PackageManager改变代码/资源路径的原因?

我发现这篇文章描述了预装应用程序的更新过程,它似乎与正在发生的事情相匹配,但我们的应用程序不是预安装的应用程序:

http://debuggingisfun.blogspot.co.uk/2014/09/android-3rd-party-application-as-system.html

我们经历了版本之间的变化,并没有发生重大变化; 清单中唯一的变化是版本号,以及代码中的一些逻辑变化.

我们以前从未见过这个问题我们以前的任何应用更新(并且有很多,应用程序将近3年,这是更新38).

android apk android-package-managers google-play

6
推荐指数
0
解决办法
316
查看次数

getlaunchintentforpackage 返回 null

有人可以告诉我为什么这会给我变量nullintent吗?

public class MainActivity extends AppCompatActivity {
    private static String action = "com.google.android.youtube";


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public void onResume() {
        super.onResume();
        this.launch();
    }

    public void launch() {
        PackageManager pm = getPackageManager();
        Intent intent = pm.getLaunchIntentForPackage(action);
        System.out.println("debug: " + intent);
        //startActivity(intent);
    }
}
Run Code Online (Sandbox Code Playgroud)

我在 Pixel 4 上测试了这个,但我从来没有卸载 YouTube。另外,sidequest 列出了应用程序并给了我包com.google.android.youtube

android android-package-managers

6
推荐指数
1
解决办法
6516
查看次数

检测应用程序是否从华为应用市场安装

我想检测应用程序的安装源。

在Android上我们可以使用两种方法来检测安装源:PackageManager#getInstallerPackageName(String)PackageManager#getInstallSourceInfo(String)。这两个调用都将返回安装程序应用程序的包名称。例如:

  • 亚马逊应用商店:com.amazon.venezia
  • 谷歌播放:com.android.vending

我的问题是,对于从华为应用市场安装的应用程序,此方法会返回什么?

android android-package-managers huawei-mobile-services appgallery huawei-developers

6
推荐指数
1
解决办法
1012
查看次数