Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何获取Android应用程序尝试从设备中删除/卸载的操作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
用户想要从 Android设备卸载应用程序时,我想要该应用程序的用户卸载按钮单击事件.

我正在从设备中删除应用程序的事件,但我想在删除应用程序之前显示弹出窗口.我正在尝试实现与“App Lock”应用程序相同的功能.

这是我通过广播接收器获取应用程序删除事件的代码.但是关于卸载按钮单击或弹出单击之前,我完全是空白.请指导我正确的方向.

提前致谢.

public class MainActivity extends Activity {
    CustomBroadcastReceiver mApplicationsReceiver;
    @Override
    protected void onCreate(Bundle savedInstanceStatE) {
        super.onCreate(savedInstanceStatE);
        setContentView(R.layout.activity_main);

        mApplicationsReceiver=new CustomBroadcastReceiver();

        IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); 
        filter.addAction(Intent.ACTION_PACKAGE_REMOVED); 
        filter.addAction(Intent.ACTION_PACKAGE_CHANGED); 
        filter.addAction(Intent.ACTION_PACKAGE_ADDED); 
        filter.addAction(Intent.ACTION_PACKAGE_replaCED); 
        filter.addAction(Intent.ACTION_PACKAGE_RESTARTED);
        filter.addAction(Intent.ACTION_PACKAGE_VERIFIED);
        filter.addAction(Intent.ACTION_PACKAGE_INSTALL);
        filter.addAction(Intent.ACTION_PACKAGE_FIRST_LAUNCH);

        filter.addAction(Intent.ACTION_Delete); 
        filter.addAction(Intent.ACTION_DEFAULT); 
        filter.addDatascheR_187_11845@e("package"); 
        registerReceiver(mApplicationsReceiver,filter); 
    }





}


public class CustomBroadcastReceiver extends BroadcastReceiver {

    /**
     * This method captures the event when a package has been removed
     */
    @Override
    public void onReceive(Context context,Intent intent)
    {
        System.out.println("Hello from CustomBroadcastReceiver");
        if (intent != null) {
            String action = intent.getAction();   
            System.out.println("L1123 : "+action);
            if (action.equals(intent.ACTION_PACKAGE_REMOVED))   {
                //Log the event capture in the log file ...
                System.out.println("The package has been removed");
            }
        }
    }
}



<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://scheR_187_11845@as.android.com/apk/res/android"
    package="com.bitS.Uninstallappdemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />


    <uses-permission android:name="android.permission.broaDCAST_PACKAGE_REMOVED" />
    <uses-permission android:name="android.permission.INSTall_PACKAGES" />
    <uses-permission android:name="android.permission.deletE_PACKAGES" />


    <uses-permission android:name="android.permission.broaDCAST_PACKAGE_ADDED" />
    <uses-permission android:name="android.permission.broaDCAST_PACKAGE_CHANGED" />
    <uses-permission android:name="android.permission.broaDCAST_PACKAGE_INSTALL" />
    <uses-permission android:name="android.permission.broaDCAST_PACKAGE_replaCED" />

    <application
        android:allowBACkup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@String/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@String/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

       <!--  <receiver android:name=".CustomBroadcastReceiver" >
            <intent-filter>


                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <action android:name="android.intent.action.PACKAGE_ADDED" />


                <category android:name="android.intent.category.DEFAULT" />

                <action android:name="android.intent.action.PACKAGE_ADDED" />
                <action android:name="android.intent.action.PACKAGE_CHANGED" />
                <action android:name="android.intent.action.PACKAGE_INSTALL" />
                <action android:name="android.intent.action.PACKAGE_REMOVED" />
                <action android:name="android.intent.action.PACKAGE_replaCED" />
            </intent-filter>
        </receiver> -->
    </application>

</manifest>

解决方法

请尝试通过Activitymanager获取任务中的顶级活动,并检查它是否是卸载活动.

核心代码

ComponentName topActivity = mActivitymanager.getRunningTasks(1).get(0).topActivity;
String packag@R_673_8371@ = topActivity.getPackag@R_673_8371@();
String className = topActivity.getClassName();
Log.v(tag,"packag@R_673_8371@" + packageName);
Log.v(tag,"className" + className);

if ("com.android.packageinstaller".equals(packageName)
    && "com.android.packageinstaller.UninstallerActivity".equals(className)) {
//Do anything you want here
}

大佬总结

以上是大佬教程为你收集整理的如何获取Android应用程序尝试从设备中删除/卸载的操作全部内容,希望文章能够帮你解决如何获取Android应用程序尝试从设备中删除/卸载的操作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。