Я прочитал это стандартное описание от Google: https://developer.android.com/training/sharing/receive
После этого я обновил свой AndroidManifest.xml, добавив в него фильтр намерений для принятия общего доступа из других приложений (для различных типов пантомимы).).
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".SplashActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="SnapLinx Share"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="text/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audeo/*" />
<data android:mimeType="application/*" />
</intent-filter>
</activity>
<activity
android:name=".SignInActivity"
android:label="@string/title_activity_sign_in"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<activity
android:name=".SignUpActivity"
android:label="SignUpActivity"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<activity
android:name=".ForgotPasswordActivity"
android:label="ForgotPasswordActivity"
android:theme="@style/AppTheme.NoActionBar">
</activity>
<activity
android:name=".MainActivity"
android:label="SnapLinx Share"
android:theme="@style/AppTheme">
</activity>
<service
android:name=".BLEScanIntentSvc"
android:enabled="true"
android:exported="false">
</service>
<service
android:name=".NotificationIntentSvc"
android:exported="false">
</service>
</application>
Я могу видеть свое приложение как параметр общего доступа в других приложениях, а также когда я выбираю файл в других приложениях (например, файл изображения в приложении "Фотографии") и выбираювозможность поделиться с моим приложением, мое приложение запускается просто отлично.Для начала я пытаюсь просто зарегистрировать параметры общего ресурса в моей функции MainActivity onCreate ().См. Этот код:
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
/ First try at getting Uri obj.
Uri FileURI = intent.getData();
if (Intent.ACTION_SEND.equals(action) && type != null)
{
Log.i(LOGTAG, "File intent. Type: " + type);
Log.i(LOGTAG, "File intent. Action: " + action);
FileURI = (Uri) intent.getParcelableExtra(Intent.EXTRA_TEXT);
if (FileURI != null)
{
Log.i(LOGTAG, "File intent. URL: " + FileURI.toString());
}
}
Полученные строки действий и типов ("android.intent.action.SEND" и "image / *") верны, но у меня нет способа получить Uriфайл, которым я поделился из приложения Фото.intent.getData () и intent.getParcelableExtra (Intent.EXTRA_TEXT) и intent.getParcelableExtra (Intent.EXTRA_STREAM) всегда возвращают ноль.
Если я прерваюсь в отладчике, все атрибуты намерения (которые ожидают, чтоподдержка доступа к Uri) выглядит как нулевое (т. е. mCatagories = null, mClipData = null mData = null, mExtras = null).
Флаги обозначены как mFlags = 524288 .... не уверен, поможет ли это.
Я собираю с компилируемым SDK и целевым SDK как 28, так и мин. SDK 23ценится.
Марк J