2015-08-28 11 views
30

Ich mag Office Lens ‚s Fähigkeit, automatisch zu beschneiden, Fokus und ein Bild ausrichten ... in erster Linie für den Empfang und die Kosten VerarbeitungKann ich Microsoft Lens in meine Anwendung integrieren?

ich eine App Flow haben will, das so geht:

  1. Benutzer zur Verarbeitung
  2. meine App öffnet und klickt Foto Empfang
  3. Objektiv öffnet (android Vorsatz oder ähnlich in iOS)
  4. Benutzer nimmt Bild
  5. Bild meiner Anwendung zurückgegeben wird

Ich habe Probleme, diesen Fluss passieren, und die Datenübertragung (Foto) zwischen der Kamera und meiner App nahtlos zu machen. Welche Möglichkeiten habe ich?

+0

was für App, die Sie zu bauen suchen, dann ist dies ein Büro-Add-in oder eine andere Art von app? Du hast die Frage mit office-addins getaggt, aber ich wollte das überprüfen –

Antwort

2

Ich habe diese Antwort von Anonsage

/** 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; 
    } 
} 

genommen einfach Office-Objektiv zu nennen

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

Quelle schreiben: Open another application from your own (intent)

+1

Er meint Interaktionen zwischen dieser App und seiner eigenen. Glaubst du wirklich, er kann das Ergebnis mit diesem Code herausfinden? – Vyacheslav

3

Wenn Sie Androidmanifest.xml Datei betrachten, sehen Sie diese 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> 

Wenn Sie diese Datei sorgfältig lesen, werden Sie sehen, dass dies nicht möglich ist, dies die anderen API zu interagieren. Weder "Broadcast" noch ein richtiger "Intent-Filter", um mit den anderen Anwendungen zu interagieren.

Dies ist heutzutage unmöglich.

Wie auch immer, offensichtlich, können Sie auf einen lokalen Speicher speichern und die Daten von SD-Karte mit Ihrer App abrufen.

+1

also würde der geschlossene Weg die App auf dem MainActivity-Bildschirm starten und den User das aufgenommene Bild mit meiner eigenen App teilen lassen? – cyptus

+1

Ich denke ja. Freigabe im internen/externen Speicher. – Vyacheslav

Verwandte Themen