Можно ли интегрировать Microsoft Lens в мое приложение?

Мне нравится способность Office Lens автоматически обрезать, фокусировать и выравнивать изображение … главным образом для обработки поступления и расхода

Я хочу, чтобы поток приложений шел следующим образом:

  1. Пользователь открывает мое приложение и подписывает фотографию
  2. Объектив открывается (намерение андроида или подобное в iOS)
  3. Пользователь делает снимок
  4. Изображение возвращается в мое приложение для обработки

У меня возникают проблемы с тем, что происходит, и сделать передачу данных (фото) между камерой и моим приложением без проблем. Какие у меня варианты?

Solutions Collecting From Web of "Можно ли интегрировать Microsoft Lens в мое приложение?"

Я взял этот ответ от Anonage

/** Open another app. * @param context current Context, like Activity, App, or Service * @param packageName the full package name of the app to open * @return true if likely successful, false if unsuccessful */ public static boolean openApp(Context context, String packageName) { PackageManager manager = context.getPackageManager(); try { Intent i = manager.getLaunchIntentForPackage(packageName); if (i == null) { return false; //throw new PackageManager.NameNotFoundException(); } i.addCategory(Intent.CATEGORY_LAUNCHER); context.startActivity(i); return true; } catch (PackageManager.NameNotFoundException e) { return false; } } 

Для вызова Office Lens просто напишите

 openApp(this, "com.microsoft.office.officelens"); 

Source: откройте другое приложение с вашего собственного (намеренного)

Если вы посмотрите на файл 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-карты с помощью своего приложения.