Java Code Examples for android.content.Intent#setSelector()
The following examples show how to use
android.content.Intent#setSelector() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: WebSchemeIntent.java From YCWebView with Apache License 2.0 | 6 votes |
/** * 静默处理内部页面支持的scheme. * * @param context 上下文 * @param uri 链接 * @return true表示被处理 */ public static boolean handleSilently(@NonNull Context context, Uri uri) { final String scheme = uri.getScheme(); if (TextUtils.isEmpty(scheme) || !isSilentType(scheme)) { return false; } try { Intent intent = Intent.parseUri(uri.toString(), Intent.URI_INTENT_SCHEME); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); // forbid launching activities without BROWSABLE category intent.addCategory("android.intent.category.BROWSABLE"); // forbid explicit call intent.setComponent(null); // forbid intent with selector intent intent.setSelector(null); if (context instanceof Activity) { return startWithActivity(intent, (Activity) context); } else { startWithAppContext(intent, context); } } catch (Exception e) { e.printStackTrace(); } return true; }
Example 2
Source File: ShortcutProxyActivity.java From letv with Apache License 2.0 | 5 votes |
protected void onCreate(Bundle savedInstanceState) { try { super.onCreate(savedInstanceState); Intent intent = getIntent(); if (intent != null) { Intent forwordIntent = getForwarIntent(); if (forwordIntent != null) { forwordIntent.addFlags(268435456); forwordIntent.putExtras(intent); if (VERSION.SDK_INT >= 15) { forwordIntent.setSelector(null); } if (ApkManager.getInstance().isConnected()) { if (isPlugin(forwordIntent)) { startActivity(forwordIntent); } finish(); return; } waitAndStart(forwordIntent); return; } finish(); return; } finish(); } catch (Exception e) { e.printStackTrace(); finish(); } }
Example 3
Source File: CordovaUriHelper.java From L.TileLayer.Cordova with MIT License | 5 votes |
/** * Give the host application a chance to take over the control when a new url * is about to be loaded in the current WebView. * * @param view The WebView that is initiating the callback. * @param url The url to be loaded. * @return true to override, false for default behavior */ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) boolean shouldOverrideUrlLoading(WebView view, String url) { // Give plugins the chance to handle the url if (this.appView.pluginManager.onOverrideUrlLoading(url)) { // Do nothing other than what the plugins wanted. // If any returned true, then the request was handled. return true; } else if(url.startsWith("file://") | url.startsWith("data:")) { //This directory on WebKit/Blink based webviews contains SQLite databases! //DON'T CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING! return url.contains("app_webview"); } else if (appView.getWhitelist().isUrlWhiteListed(url)) { // Allow internal navigation return false; } else if (appView.getExternalWhitelist().isUrlWhiteListed(url)) { try { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { intent.setSelector(null); } this.cordova.getActivity().startActivity(intent); return true; } catch (android.content.ActivityNotFoundException e) { LOG.e(TAG, "Error loading url " + url, e); } } // Intercept the request and do nothing with it -- block it return true; }
Example 4
Source File: CordovaUriHelper.java From IoTgo_Android_App with MIT License | 5 votes |
/** * Give the host application a chance to take over the control when a new url * is about to be loaded in the current WebView. * * @param view The WebView that is initiating the callback. * @param url The url to be loaded. * @return true to override, false for default behavior */ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) boolean shouldOverrideUrlLoading(WebView view, String url) { // Give plugins the chance to handle the url if (this.appView.pluginManager.onOverrideUrlLoading(url)) { // Do nothing other than what the plugins wanted. // If any returned true, then the request was handled. return true; } else if(url.startsWith("file://") | url.startsWith("data:")) { //This directory on WebKit/Blink based webviews contains SQLite databases! //DON'T CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING! return url.contains("app_webview"); } else if (appView.getWhitelist().isUrlWhiteListed(url)) { // Allow internal navigation return false; } else if (appView.getExternalWhitelist().isUrlWhiteListed(url)) { try { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { intent.setSelector(null); } this.cordova.getActivity().startActivity(intent); return true; } catch (android.content.ActivityNotFoundException e) { LOG.e(TAG, "Error loading url " + url, e); } } // Intercept the request and do nothing with it -- block it return true; }
Example 5
Source File: ShortcutProxyActivity.java From DroidPlugin with GNU Lesser General Public License v3.0 | 5 votes |
@Override protected void onCreate(Bundle savedInstanceState) { try { super.onCreate(savedInstanceState); Intent intent = getIntent(); if (intent != null) { Intent forwordIntent = getForwarIntent(); if (forwordIntent != null) { forwordIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); forwordIntent.putExtras(intent); //安全审核问题 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { forwordIntent.setSelector(null); } if (PluginManager.getInstance().isConnected()) { if (isPlugin(forwordIntent)) { execStartForwordIntent(forwordIntent); } finish(); } else { waitAndStart(forwordIntent); } } else { finish(); } } else { finish(); } } catch (Exception e) { e.printStackTrace(); finish(); } }
Example 6
Source File: CordovaUriHelper.java From bluemix-parking-meter with MIT License | 5 votes |
/** * Give the host application a chance to take over the control when a new url * is about to be loaded in the current WebView. * * @param view The WebView that is initiating the callback. * @param url The url to be loaded. * @return true to override, false for default behavior */ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) boolean shouldOverrideUrlLoading(WebView view, String url) { // Give plugins the chance to handle the url if (this.appView.pluginManager.onOverrideUrlLoading(url)) { // Do nothing other than what the plugins wanted. // If any returned true, then the request was handled. return true; } else if(url.startsWith("file://") | url.startsWith("data:")) { //This directory on WebKit/Blink based webviews contains SQLite databases! //DON'T CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING! return url.contains("app_webview"); } else if (appView.getWhitelist().isUrlWhiteListed(url)) { // Allow internal navigation return false; } else if (appView.getExternalWhitelist().isUrlWhiteListed(url)) { try { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { intent.setSelector(null); } this.cordova.getActivity().startActivity(intent); return true; } catch (android.content.ActivityNotFoundException e) { LOG.e(TAG, "Error loading url " + url, e); } } // Intercept the request and do nothing with it -- block it return true; }
Example 7
Source File: CordovaUriHelper.java From reader with MIT License | 5 votes |
/** * Give the host application a chance to take over the control when a new url * is about to be loaded in the current WebView. * * @param view The WebView that is initiating the callback. * @param url The url to be loaded. * @return true to override, false for default behavior */ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) boolean shouldOverrideUrlLoading(WebView view, String url) { // Give plugins the chance to handle the url if (this.appView.pluginManager.onOverrideUrlLoading(url)) { // Do nothing other than what the plugins wanted. // If any returned true, then the request was handled. return true; } else if(url.startsWith("file://") | url.startsWith("data:")) { //This directory on WebKit/Blink based webviews contains SQLite databases! //DON'T CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING! return url.contains("app_webview"); } else if (appView.getWhitelist().isUrlWhiteListed(url)) { // Allow internal navigation return false; } else if (appView.getExternalWhitelist().isUrlWhiteListed(url)) { try { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { intent.setSelector(null); } this.cordova.getActivity().startActivity(intent); return true; } catch (android.content.ActivityNotFoundException e) { LOG.e(TAG, "Error loading url " + url, e); } } // Intercept the request and do nothing with it -- block it return true; }
Example 8
Source File: CordovaUriHelper.java From reader with MIT License | 5 votes |
/** * Give the host application a chance to take over the control when a new url * is about to be loaded in the current WebView. * * @param view The WebView that is initiating the callback. * @param url The url to be loaded. * @return true to override, false for default behavior */ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) boolean shouldOverrideUrlLoading(WebView view, String url) { // Give plugins the chance to handle the url if (this.appView.pluginManager.onOverrideUrlLoading(url)) { // Do nothing other than what the plugins wanted. // If any returned true, then the request was handled. return true; } else if(url.startsWith("file://") | url.startsWith("data:")) { //This directory on WebKit/Blink based webviews contains SQLite databases! //DON'T CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING! return url.contains("app_webview"); } else if (appView.getWhitelist().isUrlWhiteListed(url)) { // Allow internal navigation return false; } else if (appView.getExternalWhitelist().isUrlWhiteListed(url)) { try { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { intent.setSelector(null); } this.cordova.getActivity().startActivity(intent); return true; } catch (android.content.ActivityNotFoundException e) { LOG.e(TAG, "Error loading url " + url, e); } } // Intercept the request and do nothing with it -- block it return true; }
Example 9
Source File: CordovaUriHelper.java From crosswalk-cordova-android with Apache License 2.0 | 5 votes |
/** * Give the host application a chance to take over the control when a new url * is about to be loaded in the current WebView. * * @param view The WebView that is initiating the callback. * @param url The url to be loaded. * @return true to override, false for default behavior */ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) boolean shouldOverrideUrlLoading(XWalkView view, String url) { // Give plugins the chance to handle the url if (this.appView.pluginManager.onOverrideUrlLoading(url)) { // Do nothing other than what the plugins wanted. // If any returned true, then the request was handled. return true; } else if(url.startsWith("file://") | url.startsWith("data:")) { //This directory on WebKit/Blink based webviews contains SQLite databases! //DON'T CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING! return url.contains("app_webview"); } else if (appView.getWhitelist().isUrlWhiteListed(url)) { // Allow internal navigation return false; } else if (appView.getExternalWhitelist().isUrlWhiteListed(url)) { try { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { intent.setSelector(null); } this.cordova.getActivity().startActivity(intent); return true; } catch (android.content.ActivityNotFoundException e) { LOG.e(TAG, "Error loading url " + url, e); } } // Intercept the request and do nothing with it -- block it return true; }
Example 10
Source File: FeedbackFragment.java From hash-checker with Apache License 2.0 | 4 votes |
private void sendEmail( @NonNull String text, @NonNull String email ) { Intent emailIntent = new Intent( Intent.ACTION_SEND ); emailIntent.putExtra( Intent.EXTRA_EMAIL, new String[] { email } ); String subject = getString(R.string.common_app_name); emailIntent.putExtra( Intent.EXTRA_SUBJECT, subject ); emailIntent.putExtra( Intent.EXTRA_TEXT, text ); Intent selectorIntent = new Intent( Intent.ACTION_SENDTO ); selectorIntent.setData( Uri.parse( "mailto:" ) ); emailIntent.setSelector( selectorIntent ); String chooseMessage = String.format( "%s:", getString(R.string.message_email_app_chooser) ); try { startActivity( Intent.createChooser( emailIntent, chooseMessage ) ); } catch (ActivityNotFoundException e) { L.e(e); ShareCompat.IntentBuilder .from(getActivity()) .setText("message/rfc822") .addEmailTo(email) .setSubject(subject) .setText(text) .setChooserTitle(chooseMessage) .startChooser(); } }
Example 11
Source File: DownloadHandler.java From Xndroid with GNU General Public License v3.0 | 4 votes |
/** * Notify the host application a download should be done, or that the data * should be streamed if a streaming viewer is available. * * @param context The context in which the download was requested. * @param url The full url to the content that should be downloaded * @param userAgent User agent of the downloading application. * @param contentDisposition Content-disposition http header, if present. * @param mimetype The mimetype of the content reported by the server * @param contentSize The size of the content */ public void onDownloadStart(@NonNull Activity context, @NonNull PreferenceManager manager, String url, String userAgent, @Nullable String contentDisposition, String mimetype, String contentSize) { Log.d(TAG, "DOWNLOAD: Trying to download from URL: " + url); Log.d(TAG, "DOWNLOAD: Content disposition: " + contentDisposition); Log.d(TAG, "DOWNLOAD: Mimetype: " + mimetype); Log.d(TAG, "DOWNLOAD: User agent: " + userAgent); // if we're dealing wih A/V content that's not explicitly marked // for download, check if it's streamable. if (contentDisposition == null || !contentDisposition.regionMatches(true, 0, "attachment", 0, 10)) { // query the package manager to see if there's a registered handler // that matches. Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse(url), mimetype); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { intent.setSelector(null); } ResolveInfo info = context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); if (info != null) { // If we resolved to ourselves, we don't want to attempt to // load the url only to try and download it again. if (BuildConfig.APPLICATION_ID.equals(info.activityInfo.packageName) || MainActivity.class.getName().equals(info.activityInfo.name)) { // someone (other than us) knows how to handle this mime // type with this scheme, don't download. try { context.startActivity(intent); return; } catch (ActivityNotFoundException ex) { // Best behavior is to fall back to a download in this // case } } } } onDownloadStartNoStream(context, manager, url, userAgent, contentDisposition, mimetype, contentSize); }
Example 12
Source File: DownloadHandler.java From JumpGo with Mozilla Public License 2.0 | 4 votes |
/** * Notify the host application a download should be done, or that the data * should be streamed if a streaming viewer is available. * * @param context The context in which the download was requested. * @param url The full url to the content that should be downloaded * @param userAgent User agent of the downloading application. * @param contentDisposition Content-disposition http header, if present. * @param mimetype The mimetype of the content reported by the server * @param contentSize The size of the content */ public void onDownloadStart(@NonNull Activity context, @NonNull PreferenceManager manager, String url, String userAgent, @Nullable String contentDisposition, String mimetype, String contentSize) { Log.d(TAG, "DOWNLOAD: Trying to download from URL: " + url); Log.d(TAG, "DOWNLOAD: Content disposition: " + contentDisposition); Log.d(TAG, "DOWNLOAD: Mimetype: " + mimetype); Log.d(TAG, "DOWNLOAD: User agent: " + userAgent); // if we're dealing wih A/V content that's not explicitly marked // for download, check if it's streamable. if (contentDisposition == null || !contentDisposition.regionMatches(true, 0, "attachment", 0, 10)) { // query the package manager to see if there's a registered handler // that matches. Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse(url), mimetype); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { intent.setSelector(null); } ResolveInfo info = context.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); if (info != null) { // If we resolved to ourselves, we don't want to attempt to // load the url only to try and download it again. if (BuildConfig.APPLICATION_ID.equals(info.activityInfo.packageName) || MainActivity.class.getName().equals(info.activityInfo.name)) { // someone (other than us) knows how to handle this mime // type with this scheme, don't download. try { context.startActivity(intent); return; } catch (ActivityNotFoundException ex) { // Best behavior is to fall back to a download in this // case } } } } onDownloadStartNoStream(context, manager, url, userAgent, contentDisposition, mimetype, contentSize); }
Example 13
Source File: CordovaUriHelper.java From cordova-amazon-fireos with Apache License 2.0 | 4 votes |
/** * Give the host application a chance to take over the control when a new url * is about to be loaded in the current WebView. * * @param view The WebView that is initiating the callback. * @param url The url to be loaded. * @return true to override, false for default behavior */ @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) boolean shouldOverrideUrlLoading(AmazonWebView view, String url) { // The WebView should support http and https when going on the Internet if(url.startsWith("http:") || url.startsWith("https:")) { // We only need to whitelist sites on the Internet! if(appView.getWhitelist().isUrlWhiteListed(url)) { return false; } } // Give plugins the chance to handle the url if (this.appView.pluginManager.onOverrideUrlLoading(url)) { // Do nothing other than what the plugins wanted. // If any returned true, then the request was handled. return true; } else if(url.startsWith("file://") | url.startsWith("data:")) { //This directory on WebKit/Blink based webviews contains SQLite databases! //DON'T CHANGE THIS UNLESS YOU KNOW WHAT YOU'RE DOING! return url.contains("app_webview"); } else if (appView.getWhitelist().isUrlWhiteListed(url)) { // Allow internal navigation return false; } else if (appView.getExternalWhitelist().isUrlWhiteListed(url)) { try { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(url)); intent.addCategory(Intent.CATEGORY_BROWSABLE); intent.setComponent(null); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) { intent.setSelector(null); } this.cordova.getActivity().startActivity(intent); return true; } catch (android.content.ActivityNotFoundException e) { LOG.e(TAG, "Error loading url " + url, e); } } // Intercept the request and do nothing with it -- block it return true; }