zoukankan      html  css  js  c++  java
  • 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,然后运行项目效果如下

    点击安装

  • 相关阅读:
    SSH的基本操作
    Aptana Studion出现 duplicate location重复定位报错
    centOS6.6虚拟机启动后登陆界面无法显示
    putty的基本使用
    Linux之如何进行固定IP、DNS等设置
    \无法访问。您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。找不到网络路径。解决方法和思路。
    访问共享时提示“你没有权限访问\192.168.0.100共享盘”解决方法?
    ESXI问题汇总
    【亲测】使用U盘安装ESXI6.7全过程以及遇到的问题记录
    U盘安装EXSi6.7出错menu.c32文件
  • 原文地址:https://www.cnblogs.com/wuyudong/p/5889231.html
Copyright © 2011-2022 走看看