私は Office Lens の画像を自動的にトリミング、フォーカス、整列する機能が好きです...主に領収書と経費の処理のために
次のようなアプリフローが必要です。
そのフローを実現し、カメラとアプリ間のデータ転送(写真)をシームレスにするのに問題があります。どのようなオプションがありますか?
Androidmanifest.xml
ファイルを見ると、次のXMLが表示されます。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android" package="com.Microsoft.office.officelens" platformBuildVersionCode="21" platformBuildVersionName="5.0.1-1624448">
<uses-permission Android:name="Android.permission.CAMERA" Android:required="true"/>
<uses-permission Android:name="Android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission Android:name="Android.permission.GET_ACCOUNTS"/>
<uses-permission Android:name="Android.permission.INTERNET"/>
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission Android:name="Android.permission.AUTHENTICATE_ACCOUNTS"/>
<uses-permission Android:name="Android.permission.ACCESS_DOWNLOAD_MANAGER"/>
<uses-permission Android:name="Android.permission.DOWNLOAD_WITHOUT_NOTIFICATION"/>
<uses-permission Android:name="Android.permission.READ_CONTACTS"/>
<uses-permission Android:name="Android.permission.READ_PROFILE"/>
<uses-permission Android:name="Android.permission.READ_PHONE_STATE"/>
<uses-permission Android:name="Android.permission.RECEIVE_SMS"/>
<uses-feature Android:name="Android.hardware.camera" Android:required="true"/>
<uses-feature Android:name="Android.hardware.camera.autofocus" Android:required="false"/>
<application Android:allowBackup="true" Android:icon="@drawable/ic_officelens" Android:label="@string/officelens_app_name" Android:largeHeap="true" Android:name="com.Microsoft.office.officelens.OfficeLensApplication" Android:theme="@style/OfficeLensAppTheme">
<activity Android:label="@string/officelens_app_name" Android:name="com.Microsoft.office.apphost.LaunchActivity" Android:theme="@style/OfficeLensSplashTheme">
<intent-filter>
<action Android:name="Android.intent.action.MAIN"/>
<category Android:name="Android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity Android:configChanges="orientation|screenSize" Android:label="@string/officelens_app_name" Android:launchMode="singleTask" Android:name="com.Microsoft.office.officelens.MainActivity" Android:theme="@style/FullscreenTheme"/>
<activity Android:label="@string/officelens_app_name" Android:name="com.Microsoft.office.officelens.SecureActivity" Android:parentActivityName="com.Microsoft.office.officelens.MainActivity" Android:windowSoftInputMode="stateHidden"/>
<activity Android:label="@string/title_activity_settings" Android:name="com.Microsoft.office.officelens.SettingsActivity" Android:parentActivityName="com.Microsoft.office.officelens.MainActivity"/>
<activity Android:configChanges="orientation|screenSize" Android:label="" Android:name="com.Microsoft.office.officelens.AboutActivity" Android:parentActivityName="com.Microsoft.office.officelens.SettingsActivity"/>
<activity Android:label="" Android:name="com.Microsoft.office.officelens.FirstRunActivity" Android:parentActivityName="com.Microsoft.office.officelens.MainActivity" Android:screenOrientation="portrait" Android:theme="@style/OfficeLensFirstRunTheme"/>
<activity Android:label="@string/title_activity_section_picker" Android:name="com.Microsoft.onenote.pickerlib.OneNotePickerActivity" Android:theme="@style/Theme.AppCompat.Light"/>
<activity Android:exported="false" Android:icon="@drawable/ms_logo" Android:label="@string/webflow_header" Android:name="com.Microsoft.onlineid.authenticator.AccountAddPendingActivity" Android:theme="@style/Theme.MSA"/>
<activity Android:configChanges="orientation|screenSize" Android:exported="false" Android:icon="@drawable/ms_logo" Android:label="@string/webflow_header" Android:name="com.Microsoft.onlineid.internal.ui.WebWizardActivity" Android:theme="@style/Theme.MSA" Android:windowSoftInputMode="adjustResize">
<intent-filter>
<action Android:name="com.Microsoft.onlineid.internal.SIGN_IN"/>
<action Android:name="com.Microsoft.onlineid.internal.RESOLVE_INTERRUPT"/>
<category Android:name="Android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity Android:configChanges="orientation|screenSize" Android:exported="false" Android:icon="@drawable/ms_logo" Android:label="@string/webflow_header" Android:name="com.Microsoft.onlineid.ui.AddAccountActivity" Android:theme="@style/Theme.MSA" Android:windowSoftInputMode="adjustResize">
<intent-filter>
<action Android:name="com.Microsoft.onlineid.internal.ADD_ACCOUNT"/>
<action Android:name="com.Microsoft.onlineid.internal.SIGN_UP_ACCOUNT"/>
<category Android:name="Android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity Android:configChanges="orientation|screenSize" Android:exported="false" Android:name="com.Microsoft.onlineid.ui.SignOutActivity" Android:theme="@style/Theme.MSA.Transparent"/>
<activity Android:exported="false" Android:icon="@drawable/ms_logo" Android:label="@string/webflow_header" Android:name="com.Microsoft.onlineid.internal.ui.AccountPickerActivity" Android:theme="@style/Theme.MSA.Dialog">
<intent-filter>
<action Android:name="com.Microsoft.onlineid.internal.PICK_ACCOUNT"/>
<category Android:name="Android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<service Android:exported="false" Android:name="com.Microsoft.onlineid.internal.MsaService">
<intent-filter>
<action Android:name="com.Microsoft.onlineid.internal.GET_TICKET"/>
<action Android:name="com.Microsoft.onlineid.internal.UPDATE_PROFILE"/>
<action Android:name="com.Microsoft.onlineid.internal.SIGN_OUT"/>
<action Android:name="com.Microsoft.onlineid.internal.SIGN_OUT_ALL_APPS"/>
<category Android:name="Android.intent.category.DEFAULT"/>
</intent-filter>
</service>
<service Android:enabled="true" Android:exported="false" Android:name="com.Microsoft.onlineid.sso.service.MsaSsoService">
<intent-filter>
<action Android:name="com.Microsoft.msa.action.SSO_SERVICE"/>
</intent-filter>
<meta-data Android:name="com.Microsoft.msa.service.sso_version" Android:value="1"/>
<meta-data Android:name="com.Microsoft.msa.service.sdk_version" Android:value="@string/sdk_version_name"/>
</service>
</application>
<uses-permission Android:name="com.Android.vending.CHECK_LICENSE"/>
<uses-permission Android:name="Android.permission.MANAGE_ACCOUNTS"/>
<uses-permission Android:name="Android.permission.USE_CREDENTIALS"/>
<uses-feature Android:name="Android.hardware.telephony" Android:required="false"/>
</manifest>
このファイルを注意深く読むと、これが他のAPIと相互作用することが不可能であることがわかります。これを他のアプリケーションと相互作用させるための「ブロードキャスト」「適切な「インテントフィルター」」もありません。
これは今日では不可能です。
とにかく、明らかに、ローカルストレージに保存し、アプリを使用してSDカードからデータを取得できます。