Problem installing APK automatically into target board

Viewed 27

I'll post my code if needed, but currently the only problem I'm facing is that I cannot insert the file path into InputStream.

I'm working on vendor directory,

The logic is quite simple

  1. I use BroadcastReceiver to get USB_ATTACHED intent
  2. start InstallPackage.class(my code) to install apk in usb

in my AndroidManifest,

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.innopia.systemcontrolreceiver"
    android:versionCode="2"
    android:versionName="0.0.0.1"
    android:sharedUserId="android.uid.system"
    >
    <uses-feature android:name="android.hardware.usb.host" />
    <uses-sdk android:minSdkVersion="23" />

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.REBOOT" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>

    <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true">

    <provider
            android:name="android.support.v4.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                    android:name="android.support.FILE_PROVIDER_PATHS"
                    android:resource="@xml/provider_paths"/>
    </provider>

    <activity android:name = ".InstallPackage">
            <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
    </activity>
    <receiver android:name= "com.innopia.systemcontrolreceiver.SystemControlReceiver" android:enabled="true" android:requestLegacyExternalStorage="true" android:exported="true" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
            <intent-filter>
                    <action android:name="android.intent.action.BOOT_COMPLETED" />
                    <action android:name="android.intent.action.ACTION_BOOT_COMPLETED" />
                    <action android:name="android.intent.action.QUICKBOOT_POWERON" />
                    <action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
                    <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
                            android:resource="@xml/device_filter" />
                    <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" />
            </intent-filter>

and in res/xml/provider_paths

<paths>
    <root-path name="root" path="."/>
</paths>

I tried "/mnt/media_rw/XXXX-XXXX", "/storage/XXXX-XXXX", and a lot of other methods which also didn't work

need help desperately, have been working on this for days.

In my log it says ENOENT cannot find file

0 Answers
Related