Android Intentå¼ã³åºããèªåã§ã³ã³ããã¼ã«æ¹æ³
Androidã¢ããªãä½è£½ãã¦ããã¨、å¤é¨ããIntentå¼ã³åºãã«å¯¾å¿ããããã¨èããéçºè ã¯å¤ãã¨æãã®ã§ãã、䏿¹、ããããããã¼ã¨ã¢ããªä¸è¦§ãåºãã®ã¯çµæ§ãããªã®ã§、対å¿ãèºèºããæ¹ãããã¨æãã¾ã。
ç¹ã«ãã¤ã使ãããããªãã¦、ç¹å®ã®ç¶æ³ä¸ã®ã¿ã§ä½¿ç¨ããã¢ããªã®å ´åã¯、èªåã®ä½ã£ãã½ãããä¸è¦§ã«åºã¦ããã®ãããã¾ã ã£ããããã®ã§、ãã¼ãã¨ããç¶æ³ã«ãªãã¾ã。
ãã®ãããªã¢ããªã®å ´å、è¨å®ç»é¢ã§、Intentå¼ã³åºãã«å¯¾å¿ã§ããã¨ä¾¿å©ã§ã。
ä¸è¨ã§èª¬æããã¨、COMPONENT_ENABLED_STATE_ENABLED使ãã¨ã§ããã
ãªã®ã§ãã、ãããªããæ¹ã®è§£èª¬ã§ã。
仿§
è¯ãè¦ããã、ã©ã®ãã©ã¦ã¶ã使ç¨ãããã®é¸æç»é¢
ãã©ã¦ã¶ã¢ããªã、ä½ã£ã¦ã¿ã。Intent対å¿ãã¦、以ä¸ã®ããã«è¡¨ç¤ºãããããã«ãã。
ã§ã、ãã¤ã表示ãããã®ã¯、ãããªã®ã§、ã¢ããªã±ã¼ã·ã§ã³å ã®ä»¥ä¸ã®ãããªè¨å®ç»é¢ã§è¨å®ã§ããããã«ããã。(URLãéãã¨ãã«ä½¿ãã§å¶å¾¡)
æè¡æ¦è¦
PacakageManagerã¯ã©ã¹ã«、setComponentEnableSettingã¨ããã¡ã½ãããããã¾ã。ãã®ã¡ã½ããã使ç¨ããäºã§ActivityãEnable/Disableã«åãæ¿ãå¯è½ã§ã。
ä»ã®ã¢ããªã±ã¼ã·ã§ã³ã®è¨å®ã¯æ¨©éãå¿
è¦ã«ãªãã¾ãã、èªåèªèº«ã§ããã°å¯è½ã§ã。
<activity android:name=".lib.MainActivityDummy"android:enabled="false">setComponentEnableSettingã¯、Manifest.xmlã®「android:enable」ã®é¨åã«å¯¾å¿ãã¾ã。ããã«falseã¨è¨è¼ããã¨å¤é¨ããåç
§ã¯ãããªããªãã¾ãã、setComponetEnableDettingã使ç¨ããã¨ä¸è¨ã®「android:enable」ãæ¸ãå¤ããã¾ã。
ãã¡ãã、ç´æ¥ã¤ã³ã¹ãã¼ã«ãããã¡ã¤ã«ãæ¸ãå¤ããããã§ã¯ãªã、ã·ã¹ãã ã管çããpackage.xmlã®æ¹ã®è¨è¼ã夿´ã«ãªã、disableã«ããå ´åã¯å¼ã³åºãããªããªãã¾ã。
Android Manifest.xml
<activity android:name=".lib.MainActivity"android:label="@string/app_name"<intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><!-- å
é¨ã®è¨å®ã§ãã©ã¦ã¶é¸æç»é¢ã«åºããåºããªãããæ±ºããããããã«ãã--><activity android:name=".lib.MainActivityDummy"android:enabled="false"><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="http" /><data android:scheme="https" /><data android:scheme="about" /></intent-filter></activity>ãã¼ã ã¢ããªãã、ã¢ã¤ã³ã³ãã¿ãããã¦èµ·åãããActivityã¯、「.lib.MainActivity」ã§ã。
ãã©ã¦ã¶ã®é¸æç»é¢ããèµ·åãããã¨ãã¯、「.lib.MainActivityDummy」(以éDammyActivity)ã¨ãªãã¾ã。
ä¸è¨Manifestã§ã¯、DammyActivityã®æ¹ã¯、android:enabled=”false”ã«ãã¦ããã¾ãã®ã§、ã¤ã³ã¹ãã¼ã«ç´å¾ã¯
ãã©ã¦ã¶ä¸è¦§ç»é¢ã«ã§ã¦ããªã仿§ã§ã。
ã¢ããªå ã®è¨å®ç»é¢ã«ã¦、「使ç¨ãã」ã¨ããã¨、DammyActivityã®android:enabledãtrueã«ãªã、ã¢ããªä¸è¦§ã«è¡¨ç¤ºãããããã«ãªãã¨ããä»çµã¿ã§ã。
使 、å¼ã³åºãç¨Activityã¨ãã¼ã ããå¼ã°ããï¼ã¤ã®Activityã«åãã¦ãããã¨ããã¨、ãã¼ã ã¢ããªããå¼ã°ããActivityãfalseã«ãã¦ãã¾ãã¨äºåº¦ã¨èµ·åããªããªã£ã¦ãã¾ãã®ã§、false/trueãåãæ¿ãå¯è½ãªããã«å¼ã³åºãå°ç¨ã®Activityãä½è£½ãã¦ããã¾ã。
DammyActivity
ãã®æ©è½ãå®ç¾ããããã«、å¼ã³åºãå°ç¨ã®Activityãä½ãã¾ã。
ã¨ãã£ã¦ã、ãããªã«é£ããã¯ããã¾ãã
package jp.co.taosoftware.android.devbrowser.lib;/*** ã¤ã³ãã³ããã£ã«ã¿ã®ON/OFFãè¨å®ããå©ç¨ããçºã«å©ç¨ãã* MainActivityãç¶æ¿ããã®ã¿*/public class MainActivityDummy extends MainActivity {}ä½è£½ããã¢ããªã®ç¨®é¡ã«ãããã¨æãã¾ãã、ç¶æ¿ãã¦çµããã§ã。
ãã©ã¡ã¼ã¿ãè§£æãããã ãã§ããã°、onCreateãOverrideãã¦、ãã®ã¯ã©ã¹ã®ã¿ã§å¦çãããã¨、ã½ã¼ã¹ã綺éºã«ãªããã¨æãã¾ã。
è¨å®
shared prefrenceã«ä½¿ãã使ããªãããtrue/falseã§å
¥ã£ã¦ããã®ãåæã§ãã、true/falseã®ãµã³ãã«ã³ã¼ãã¨ãªãã¾ã。
PrefrenceActivityã®onSharedPreferenceChangedãããã§ä½¿ç¨ããã°ãã¾ãåä½ãã¾ã。
PackageManager pm = mContext.getPackageManager();// ãªã¹ãã®è¨å®ç¶æ
ãåå¾Boolean check = sharedPreferences.getBoolean(key, false);// URLãã¯ãªãã¯ããéã«、ãã©ã¦ã¶ä¸è¦§ã«è¡¨ç¤ºãããã©ãããåãæ¿ããif(check){// ãã§ãã¯ãæãå ´åã¯ä¸è¦§ã«è¡¨ç¤ºã«ãã// è¨å®ããç¬éã«ã¢ããªã±ã¼ã·ã§ã³ãçµäºããããªãã®ã§DONT_KILL_APPãæå®pm.setComponentEnabledSetting(new ComponentName(mContext, MainActivityDummy.class),PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);}else{// ãã§ãã¯ãç¡ãå ´åã¯ä¸è¦§ã«è¡¨ç¤ºããªãpm.setComponentEnabledSetting(new ComponentName(mContext, MainActivityDummy.class),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);}ã¾ã¨ã
Twitterã®æ¹ã§ã¤ã¶ãããã¦ããæ¹ãããã®ã§、æ¥é½è¨äºã«ãããã、ããªãæ©è¶³ã«ãªãã¾ããã、ãã®ä»£ããã³ãã¼ãã¼ã¹ãã§è¡ããããã«è¨è¼ããã¾ãã。
ããã、è¨å®ç»é¢ã«è¡¨ç¤ºããã、「æå¹ã«ããç¡å¹ã«ãã」ã表ç¾ããè¨èã£ã¦è¯ã表ç¾ãªããã®ã§ãããã?
ããã°å ã®é¢é£ããè¨äº
- Widgetã¢ããªã®èµ·åã¨ã©ã¼ã¡ãã»ã¼ã¸ãåºããªãããæ¹æ³
- tAttacheApkInstall
- Android PreferenceActivityã«onSharedPreferenceChangedã使ãæã«æ³¨æãããã¨
ã³ã¡ã³ã
ã³ã¡ã³ããæç¨¿