Если коротко, то мне нужно создавать контекстное меню, без активности.
<activity
android:name=".ui.TextActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:label="@string/label_text">
<intent-filter>
<action android:name="android.intent.action.PROCESS_TEXT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
Эти привилегии есть только у "Установщика пакетов" и PlayMarket.
подобное сделать в десктопном линуксе
$data_in = file_get_contents('php://input');
CropExtras(extras.getInt(CropExtras.KEY_OUTPUT_X, 0),
extras.getInt(CropExtras.KEY_OUTPUT_Y, 0),
extras.getBoolean(CropExtras.KEY_SCALE, true) &&
extras.getBoolean(CropExtras.KEY_SCALE_UP_IF_NEEDED, false),
extras.getInt(CropExtras.KEY_ASPECT_X, 0),
extras.getInt(CropExtras.KEY_ASPECT_Y, 0),
extras.getBoolean(CropExtras.KEY_SET_AS_WALLPAPER, false),
extras.getBoolean(CropExtras.KEY_RETURN_DATA, false),
(Uri) extras.getParcelable(MediaStore.EXTRA_OUTPUT),
extras.getString(CropExtras.KEY_OUTPUT_FORMAT),
extras.getBoolean(CropExtras.KEY_SHOW_WHEN_LOCKED, false),
extras.getFloat(CropExtras.KEY_SPOTLIGHT_X),
extras.getFloat(CropExtras.KEY_SPOTLIGHT_Y));
public boolean hasPermission(AppCompatActivity activity) {
return activity.checkSelfPermission(ИМЯ ПЕРМИШЕНА)
== PackageManager.PERMISSION_GRANTED;
}
PackageManager packageManager = requireActivity().getPackageManager();
Intent intent = new Intent(Settings.ACTION_PRINT_SETTINGS);
List<ResolveInfo> resolveInfos = packageManager.queryIntentActivities(intent,
PackageManager.GET_RESOLVED_FILTER);
try {
if (resolveInfos.size() > 1) {
for (ResolveInfo resolveInfo : resolveInfos) {
if (resolveInfo.activityInfo != null) {
String packageName = resolveInfo.activityInfo.applicationInfo.packageName;
if (!"com.android.settings".equals(packageName)) {
intent.setPackage(packageName);
break;
}
}
}
}
} catch (Exception ignored) {
}
try {
startActivity(intent);
} catch (Exception e) {
Toast.makeText(requireActivity(), R.string.Oopppsss, Toast.LENGTH_SHORT).show();
}