List of usage examples for android.content.pm PackageManager hasSystemFeature
public abstract boolean hasSystemFeature(String name);
From source file:com.affectiva.affdexme.MainActivity.java
/** * We check to make sure the device has a front-facing camera. * If it does not, we obscure the app with a notice informing the user they cannot * use the app.//ww w .j a v a 2 s. co m */ void determineCameraAvailability() { PackageManager manager = getPackageManager(); isFrontFacingCameraDetected = manager.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT); isBackFacingCameraDetected = manager.hasSystemFeature(PackageManager.FEATURE_CAMERA); if (!isFrontFacingCameraDetected && !isBackFacingCameraDetected) { progressBar.setVisibility(View.INVISIBLE); pleaseWaitTextView.setVisibility(View.INVISIBLE); TextView notFoundTextView = (TextView) findViewById(R.id.not_found_textview); notFoundTextView.setVisibility(View.VISIBLE); } //set default camera settings SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); //restore the camera type settings String cameraTypeName = sharedPreferences.getString("cameraType", CameraDetector.CameraType.CAMERA_FRONT.name()); if (cameraTypeName.equals(CameraDetector.CameraType.CAMERA_FRONT.name())) { cameraType = CameraDetector.CameraType.CAMERA_FRONT; mirrorPoints = true; } else { cameraType = CameraDetector.CameraType.CAMERA_BACK; mirrorPoints = false; } }
From source file:com.aimfire.main.MainActivity.java
private void checkGyroscope() { PackageManager pm = getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_GYROSCOPE)) { // warn the user AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle); alertDialogBuilder.setTitle(R.string.warning); alertDialogBuilder.setMessage(R.string.warning_device_no_gyro); alertDialogBuilder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { @Override/*from ww w . ja v a 2 s. c o m*/ public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); } }
From source file:info.zamojski.soft.towercollector.MainActivity.java
private void displayNotCompatibleDialog() { // check if displayed in this app run if (showNotCompatibleDialog) { // check if not disabled in preferences boolean showCompatibilityWarningEnabled = MyApplication.getPreferencesProvider() .getShowCompatibilityWarning(); if (showCompatibilityWarningEnabled) { TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); // check if device contains telephony hardware (some tablets doesn't report even if have) // NOTE: in the future this may need to be expanded when new specific features appear PackageManager packageManager = getPackageManager(); boolean noRadioDetected = !(packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY) && (packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_GSM) || packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY_CDMA))); // show dialog if something is not supported if (noRadioDetected) { Log.d("displayNotCompatibleDialog(): Not compatible because of radio: %s, phone type: %s", noRadioDetected, telephonyManager.getPhoneType()); //use custom layout to show "don't show this again" checkbox AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); LayoutInflater inflater = LayoutInflater.from(this); View dialogLayout = inflater.inflate(R.layout.dont_show_again_dialog, null); final CheckBox dontShowAgainCheckbox = (CheckBox) dialogLayout .findViewById(R.id.dont_show_again_dialog_checkbox); dialogBuilder.setView(dialogLayout); AlertDialog alertDialog = dialogBuilder.create(); alertDialog.setCanceledOnTouchOutside(true); alertDialog.setCancelable(true); alertDialog.setTitle(R.string.main_dialog_not_compatible_title); StringBuilder stringBuilder = new StringBuilder( getString(R.string.main_dialog_not_compatible_begin)); if (noRadioDetected) { stringBuilder.append(getString(R.string.main_dialog_no_compatible_mobile_radio_message)); }//from www. j av a 2 s .c o m // text set this way to prevent checkbox from disappearing when text is too long TextView messageTextView = (TextView) dialogLayout .findViewById(R.id.dont_show_again_dialog_textview); messageTextView.setText(stringBuilder.toString()); alertDialog.setButton(DialogInterface.BUTTON_POSITIVE, getString(R.string.dialog_ok), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { boolean dontShowAgainCheckboxChecked = dontShowAgainCheckbox.isChecked(); Log.d("displayNotCompatibleDialog(): Don't show again checkbox checked = %s", dontShowAgainCheckboxChecked); if (dontShowAgainCheckboxChecked) { MyApplication.getPreferencesProvider().setShowCompatibilityWarning(false); } } }); alertDialog.show(); } } showNotCompatibleDialog = false; } }
From source file:github.daneren2005.dsub.activity.SubsonicActivity.java
@Override protected void onCreate(Bundle bundle) { UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE); if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) { // tv = true; }/*from w w w . j ava2s . com*/ PackageManager pm = getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN)) { touchscreen = false; } setUncaughtExceptionHandler(); applyTheme(); applyFullscreen(); super.onCreate(bundle); startService(new Intent(this, DownloadService.class)); setVolumeControlStream(AudioManager.STREAM_MUSIC); if (getIntent().hasExtra(Constants.FRAGMENT_POSITION)) { lastSelectedPosition = getIntent().getIntExtra(Constants.FRAGMENT_POSITION, 0); } if (preferencesListener == null) { preferencesListener = new SharedPreferences.OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { // When changing drawer settings change visibility switch (key) { case Constants.PREFERENCES_KEY_PODCASTS_ENABLED: setDrawerItemVisible(R.id.drawer_podcasts, false); break; case Constants.PREFERENCES_KEY_BOOKMARKS_ENABLED: setDrawerItemVisible(R.id.drawer_bookmarks, false); break; case Constants.PREFERENCES_KEY_SHARED_ENABLED: setDrawerItemVisible(R.id.drawer_shares, false); break; case Constants.PREFERENCES_KEY_CHAT_ENABLED: setDrawerItemVisible(R.id.drawer_chat, false); break; case Constants.PREFERENCES_KEY_ADMIN_ENABLED: setDrawerItemVisible(R.id.drawer_admin, false); break; } } }; Util.getPreferences(this).registerOnSharedPreferenceChangeListener(preferencesListener); } }
From source file:cc.mintcoin.wallet.ui.SendCoinsFragment.java
@Override public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) { inflater.inflate(R.menu.send_coins_fragment_options, menu); scanAction = menu.findItem(R.id.send_coins_options_scan); final PackageManager pm = activity.getPackageManager(); scanAction.setVisible(pm.hasSystemFeature(PackageManager.FEATURE_CAMERA) || pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)); super.onCreateOptionsMenu(menu, inflater); }
From source file:com.bushstar.htmlcoin_android_wallet.ui.SendCoinsFragment.java
@Override public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) { inflater.inflate(R.menu.send_coins_fragment_options, menu); scanAction = menu.findItem(R.id.send_coins_options_scan); emptyAction = menu.findItem(R.id.send_coins_options_empty); final PackageManager pm = activity.getPackageManager(); scanAction.setVisible(pm.hasSystemFeature(PackageManager.FEATURE_CAMERA) || pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)); super.onCreateOptionsMenu(menu, inflater); }
From source file:org.hopestarter.wallet.ui.send.SendCoinsFragment.java
@Override public void onPrepareOptionsMenu(final Menu menu) { final MenuItem scanAction = menu.findItem(R.id.send_coins_options_scan); final PackageManager pm = activity.getPackageManager(); scanAction.setVisible(pm.hasSystemFeature(PackageManager.FEATURE_CAMERA) || pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)); scanAction.setEnabled(state == State.INPUT); super.onPrepareOptionsMenu(menu); }
From source file:org.cryptsecure.Utility.java
/** * Checks if a is camera available on the current device. * // w w w . j av a 2 s. co m * @param context * the context * @return true, if is camera available */ public static boolean isCameraAvailable(Context context) { PackageManager packageManager = context.getPackageManager(); return (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA)); }
From source file:github.popeen.dsub.activity.SubsonicActivity.java
@Override protected void onCreate(Bundle bundle) { sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL); UiModeManager uiModeManager = (UiModeManager) getSystemService(UI_MODE_SERVICE); if (uiModeManager.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION) { // tv = true; }// w ww. j a v a 2 s .co m PackageManager pm = getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN)) { touchscreen = false; } setUncaughtExceptionHandler(); applyTheme(); applyFullscreen(); super.onCreate(bundle); startService(new Intent(this, DownloadService.class)); setVolumeControlStream(AudioManager.STREAM_MUSIC); if (getIntent().hasExtra(Constants.FRAGMENT_POSITION)) { lastSelectedPosition = getIntent().getIntExtra(Constants.FRAGMENT_POSITION, 0); } if (preferencesListener == null) { preferencesListener = new SharedPreferences.OnSharedPreferenceChangeListener() { @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { // When changing drawer settings change visibility switch (key) { case Constants.PREFERENCES_KEY_PODCASTS_ENABLED: setDrawerItemVisible(R.id.drawer_podcasts, false); break; case Constants.PREFERENCES_KEY_BOOKMARKS_ENABLED: setDrawerItemVisible(R.id.drawer_bookmarks, false); break; case Constants.PREFERENCES_KEY_INTERNET_RADIO_ENABLED: setDrawerItemVisible(R.id.drawer_internet_radio_stations, false); break; case Constants.PREFERENCES_KEY_SHARED_ENABLED: setDrawerItemVisible(R.id.drawer_shares, false); break; case Constants.PREFERENCES_KEY_CHAT_ENABLED: setDrawerItemVisible(R.id.drawer_chat, false); break; case Constants.PREFERENCES_KEY_ADMIN_ENABLED: setDrawerItemVisible(R.id.drawer_admin, false); break; } } }; Util.getPreferences(this).registerOnSharedPreferenceChangeListener(preferencesListener); } if (ContextCompat.checkSelfPermission(this, permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this, new String[] { permission.WRITE_EXTERNAL_STORAGE }, PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE); } }
From source file:com.google.android.marvin.screenspeak.ScreenSpeakService.java
/** * Initializes the controllers, managers, and processors. This should only * be called once from {@link #onCreate}. */// www . j ava 2 s. com private void initializeInfrastructure() { // Initialize static instances that do not have dependencies. NodeSpeechRuleProcessor.initialize(this); final PackageManager packageManager = getPackageManager(); final boolean deviceIsPhone = packageManager.hasSystemFeature(PackageManager.FEATURE_TELEPHONY); //TODO we still need it keep true for TV until TouchExplore and Accessibility focus is not //unpaired //mSupportsTouchScreen = packageManager.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN); // Only initialize telephony and call state for phones. if (deviceIsPhone) { mCallStateMonitor = new CallStateMonitor(this); mAccessibilityEventProcessor.setCallStateMonitor(mCallStateMonitor); } mCursorController = new CursorControllerApp(this); addEventListener(mCursorController); mFeedbackController = new FeedbackControllerApp(this); mFullScreenReadController = new FullScreenReadControllerApp(mFeedbackController, mCursorController, this); addEventListener(mFullScreenReadController); mSpeechController = new SpeechController(this, mFeedbackController); mShakeDetector = new ShakeDetector(mFullScreenReadController, this); mMenuManager = new MenuManagerWrapper(); updateMenuManager(mSpeechController, mFeedbackController); // Sets mMenuManager mRingerModeAndScreenMonitor = new RingerModeAndScreenMonitor(mFeedbackController, mMenuManager, mShakeDetector, mSpeechController, this); mAccessibilityEventProcessor.setRingerModeAndScreenMonitor(mRingerModeAndScreenMonitor); mGestureController = new GestureControllerApp(this, mCursorController, mFeedbackController, mFullScreenReadController, mMenuManager); mSideTapManager = new SideTapManager(this, mGestureController); addEventListener(mSideTapManager); mFeedbackController.addHapticFeedbackListener(mSideTapManager); mTextCursorController = new TextCursorControllerApp(); addEventListener(mTextCursorController); // Add event processors. These will process incoming AccessibilityEvents // in the order they are added. ProcessorEventQueue processorEventQueue = new ProcessorEventQueue(mSpeechController, this); processorEventQueue.setTestingListener(mAccessibilityEventProcessor.getTestingListener()); mAccessibilityEventProcessor.setProcessorEventQueue(processorEventQueue); addEventListener(processorEventQueue); addEventListener(new ProcessorScrollPosition(mFullScreenReadController, mSpeechController, this)); addEventListener(new ProcessorAccessibilityHints(this, mSpeechController, mCursorController)); addEventListener(new ProcessorPhoneticLetters(this, mSpeechController)); mProcessorFollowFocus = new ProcessorFocusAndSingleTap(mCursorController, mFeedbackController, mSpeechController, this); addEventListener(mProcessorFollowFocus); if (mCursorController != null) { mCursorController.addScrollListener(mProcessorFollowFocus); } mVolumeMonitor = new VolumeMonitor(mSpeechController, this); mBatteryMonitor = new BatteryMonitor(this, mSpeechController, (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE)); if (Build.VERSION.SDK_INT >= PackageRemovalReceiver.MIN_API_LEVEL) { // TODO(KM): Move this into the custom label manager code mPackageReceiver = new PackageRemovalReceiver(); } if (Build.VERSION.SDK_INT >= ProcessorGestureVibrator.MIN_API_LEVEL) { addEventListener(new ProcessorGestureVibrator(mFeedbackController)); } addEventListener(new ProcessorWebContent(this)); DimScreenControllerApp dimScreenController = new DimScreenControllerApp(this); mDimScreenController = dimScreenController; if (Build.VERSION.SDK_INT >= ProcessorVolumeStream.MIN_API_LEVEL) { ProcessorVolumeStream processorVolumeStream = new ProcessorVolumeStream(mFeedbackController, mCursorController, mDimScreenController, this); addEventListener(processorVolumeStream); mKeyEventListeners.add(processorVolumeStream); } if (Build.VERSION.SDK_INT >= CustomLabelManager.MIN_API_LEVEL) { mLabelManager = new CustomLabelManager(this); } if (Build.VERSION.SDK_INT >= KeyComboManager.MIN_API_LEVEL) { mKeyComboManager = new KeyComboManager(this); mKeyComboManager.addListener(mKeyComboListener); // Search mode should receive key combos immediately after the ScreenSpeakService. if (Build.VERSION.SDK_INT >= KeyboardSearchManager.MIN_API_LEVEL) { mKeyboardSearchManager = new KeyboardSearchManager(this, mLabelManager); mKeyEventListeners.add(mKeyboardSearchManager); addEventListener(mKeyboardSearchManager); mKeyComboManager.addListener(mKeyboardSearchManager); } mKeyComboManager.addListener(mCursorController); mKeyEventListeners.add(mKeyComboManager); } addEventListener(mSavedNode); mOrientationMonitor = new OrientationMonitor(mSpeechController, this); mOrientationMonitor.addOnOrientationChangedListener(dimScreenController); mAnalytics = new ScreenSpeakAnalytics(this); }