Отправить файл в приложение с намерениями с помощью Tasker - PullRequest
0 голосов
/ 30 марта 2020

Используя приложение «Total Commander» ( Ссылка ), я могу выбрать файл .csv и «Открыть с помощью» моего выбранного приложения, «Мой бюджет Книга» ( Ссылка - оплачено приложение). Это открывает приложение и предлагает пользователю, если я хочу импортировать данные. Я пытаюсь сделать это вместо Tasker.

Что примечательно, но я нахожу странным, что я не могу сделать это из своего файлового проводника (Samsung S8 +)?

tl; dr Мне нужна помощь, чтобы воссоздать намерение поделиться файлом в My Budget Book для импорта.

Я связался с разработчиком "My Budget Book", и они дали мне следующее:

ImportCsvActivity:
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>

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

            <data
                android:mimeType="text/csv"
                android:pathPattern=".*\\.csv"
                android:scheme="content"
                tools:ignore="AppLinkUrlError"/>
            <data
                android:mimeType="text/csv"
                android:pathPattern=".*\\.CSV"
                android:scheme="content"
                tools:ignore="AppLinkUrlError"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>

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

            <data
                android:host="*"
                android:mimeType="*/*"
                android:pathPattern=".*\\.csv"
                android:scheme="file"/>
            <data
                android:host="*"
                android:mimeType="*/*"
                android:pathPattern=".*\\.CSV"
                android:scheme="file"/>
        </intent-filter>

Я пытался следовать инструкциям в Интернете с помощью действий Tasker Java, но до сих пор самое большее, что я могу сделать, - запустить приложение на странице «Импорт CSV», но оно не запрашивает импорт.

Используя "Intent Intercept" ( Link ), я получаю это:

    intent:///storage/emulated/0/My%20Budget%20Book/TaskerImport_1584702040.csv#Intent;scheme=file;type=text/comma-separated-values;launchFlags=0x13100000;end 
------------ 
ACTION: android.intent.action.VIEW 
DATA: file:///storage/emulated/0/My%20Budget%20Book/TaskerImport_1584702040.csv 
MIME: text/comma-separated-values 
URI: intent:///storage/emulated/0/My%20Budget%20Book/TaskerImport_1584702040.csv#Intent;scheme=file;type=text/comma-separated-values;launchFlags=0x13100000;end 
FLAGS: 
FLAG_RECEIVER_FOREGROUND 
FLAG_ACTIVITY_FORWARD_RESULT 
FLAG_ACTIVITY_PREVIOUS_IS_TOP 
FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY 

------------ 
MATCHING ACTIVITIES: 
Excel (com.microsoft.office.excel - com.microsoft.office.excel.excelMainActivity) 
anWriter free (com.ansm.anwriter - com.ansm.anwriter.MainActivityFree) 
Totalcmd-Editor (com.ghisler.android.TotalCommander - com.ghisler.android.TotalCommander.TCEditActivity) 
Sheets (com.google.android.apps.docs.editors.sheets - com.google.android.apps.docs.editors.trix.quicksheet.QuickSheetDocumentOpenerActivityAlias) 
CSV import (com.onetwoapps.mh - com.onetwoapps.mh.ImportCsvActivity) 
QuickEdit (com.rhmsoft.edit - com.rhmsoft.edit.activity.MainActivity) 

Моя текущая задача:

Intent Testing (13)
    A1: Java Function [ Return:theIntent Class Or Object:Intent Function:new
{Intent} () Param:Intent.ACTION_SEND Param: Param: Param: Param: Param: Param: ] 
    A2: Java Function [ Return: Class Or Object:theIntent Function:setAction
{Intent} (String) Param:android.intent.action.VIEW Param: Param: Param: Param: Param: Param: ] 
    A3: Java Function [ Return: Class Or Object:theIntent Function:setClassName
{Intent} (String, String) Param:com.onetwoapps.mh Param:com.onetwoapps.mh.ImportCsvActivity Param: Param: Param: Param: Param: ] 
    A4: Java Function [ Return: Class Or Object:theIntent Function:addFlags
{Intent} (int) Param:theIntent.FLAG_ACTIVITY_NEW_TASK Param: Param: Param: Param: Param: Param: ] 
    A5: Java Function [ Return:parsedurl Class Or Object:Uri Function:parse
{Uri} (String) Param:file:///My Budget Book/TaskerImport_1584702040.csv Param: Param: Param: Param: Param: Param: ] 
    A6: Java Function [ Return: Class Or Object:theIntent Function:putExtra
{Intent} (String, Parcelable) Param:android.intent.extra.STREAM Param:parsedurl Param: Param: Param: Param: Param: ] 
    A7: Java Function [ Return: Class Or Object:CONTEXT Function:startActivity
{} (Intent) Param:theIntent Param: Param: Param: Param: Param: Param: ] 

Редактировать: Мне нужна помощь воссоздание намерения предоставить общий доступ к файлу, сгенерированному Tasker, в My Budget Book для импорта.

Спасибо за любую помощь, спасибо!

1 Ответ

0 голосов
/ 01 апреля 2020

Решено с помощью действия Wi-Fi Tasker ADB:

am start -a android .intent.action.VIEW -d file: //% filepath -t text / comma / separat-values ​​-n come. onetwoapps.mh/.ImportCsvActivity

«Пробелы» в имени пути к файлу необходимо преобразовать в «% 20»

...