• Android APK的安装


    打开packagesappsPackageInstaller下的清单文件

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              package="com.android.packageinstaller">
    
        <original-package android:name="com.android.packageinstaller" />
    
        <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
        <uses-permission android:name="android.permission.DELETE_PACKAGES" />
        <uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.CLEAR_APP_USER_DATA" />
        <application android:label="@string/app_name"> 
            <activity android:name=".PackageInstallerActivity"
                    android:configChanges="orientation|keyboardHidden"
                    android:theme="@style/TallTitleBarTheme">
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <data android:scheme="content" />
                    <data android:scheme="file" />
                    <data android:mimeType="application/vnd.android.package-archive" />
                </intent-filter>
            </activity>
            <activity android:name=".InstallAppProgress"
                    android:configChanges="orientation|keyboardHidden"
                    android:theme="@style/TallTitleBarTheme">
            </activity>
            <activity android:name=".UninstallerActivity"
                    android:configChanges="orientation|keyboardHidden"
                    android:theme="@style/TallTitleBarTheme">
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    <action android:name="android.intent.action.DELETE" />
                    <category android:name="android.intent.category.DEFAULT" />
                    <data android:scheme="package" />
                </intent-filter>
            </activity>
            <activity android:name=".UninstallAppProgress"
                    android:configChanges="orientation|keyboardHidden"
                    android:theme="@style/TallTitleBarTheme">
            </activity>
        </application>
    </manifest> 

    项目布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity" >
    
        <EditText
            android:id="@+id/et_path"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="请输入apk的路径" />
        <Button
            android:onClick="click"
             android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="安装"
            
            />
    
    </LinearLayout>

    逻辑代码如下:

    public class MainActivity extends Activity {
    
        private EditText et_path;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            et_path = (EditText) findViewById(R.id.et_path);
        }
    
        public void click(View view) {
            String path = et_path.getText().toString().trim();
            /*
             * <action android:name="android.intent.action.VIEW" /> <category
             * android:name="android.intent.category.DEFAULT" /> <data
             * android:scheme="content" /> <data android:scheme="file" /> <data
             * android:mimeType="application/vnd.android.package-archive" />
             */
            Intent intent = new Intent();
            intent.setAction("android.intent.action.VIEW");
            intent.addCategory("android.intent.category.DEFAULT");
            intent.setDataAndType(Uri.fromFile(new File(path)), "application/vnd.android.package-archive");
            startActivity(intent);
        }
    }

    首先需要AndroidManifest.xml中加入安装程序权限:
    <!-- 安装程序权限 -->
    <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>

    接着将一个名为girl.apk的apk导入sdcard,然后运行项目效果如下

    点击安装

  • 相关阅读:
    Golang 学习权威网站
    iOS多线程GCD的使用
    iOS 开发 nonatomic 和 atomic
    iOS证书配置与管理
    iOS pthread
    NSTimer 不工作 不调用方法
    iOS开发者学习Flutter
    Xcode如何打开Archives打包界面?
    iOS 12.1 跳转页面时 tabBar闪动
    支付宝
  • 原文地址:https://www.cnblogs.com/wuyudong/p/5889231.html
Copyright © 2020-2023  润新知