摘要:本文原作者長鳴鳥,未經(jīng)同意,轉(zhuǎn)載不帶名的嚴重鄙視。作為系統(tǒng)開發(fā)者,我們往往有這樣那樣修改系統(tǒng)屬性的需求,例如修改國家碼,如之類。所以我們就需要一種劍走偏鋒,曲線救國之法有修改屬性需求的應(yīng)用發(fā)送廣播,有權(quán)限的應(yīng)用接收廣播,修改屬性。
本文原作者 長鳴鳥 ,未經(jīng)同意,轉(zhuǎn)載不帶名的嚴重鄙視。
作為系統(tǒng)開發(fā)者,我們往往有這樣那樣修改系統(tǒng)屬性的需求,例如修改國家碼,如persist.sys.countrycode之類。但我們不能把每一個應(yīng)用都給予系統(tǒng)權(quán)限,這樣指不定哪天會出大事,而且客戶也不同意。
所以我們就需要一種劍走偏鋒,曲線救國之法:
有修改屬性需求的應(yīng)用發(fā)送廣播,有權(quán)限的應(yīng)用接收廣播,修改屬性。
發(fā)送方:
private static final String BACKGROUNDDATA_ON = "#backgtotrue#"; private static final String BACKGROUNDDATA_OFF = "#backtofalse#"; Intent intent = new Intent("android.mine.SECRET_CODE"); if(enableExp){ intent.putExtra("secretcode", BACKGROUNDDATA_ON); } else{ intent.putExtra("secretcode", BACKGROUNDDATA_OFF); } this.sendBroadcast(intent);
接收方:
private static final String BACKGROUNDDATA_ON = "#backgtotrue#"; private static final String BACKGROUNDDATA_OFF = "#backtofalse#"; String action = intent.getAction(); String secretcode = intent.getStringExtra("secretcode"); if ("android.mine.SECRET_CODE".equals(action)) { if (BACKGROUNDDATA_ON.equals(secretcode)) { Log.d(TAG, "persist.backgrounddata.enable:true"); SystemProperties.set("persist.backgrounddata.enable", "true"); } else if (BACKGROUNDDATA_OFF.equals(secretcode)) { Log.d(TAG, "persist.backgrounddata.enable:false"); SystemProperties.set("persist.backgrounddata.enable", "false"); } }
但這樣可能不夠嚴謹,畢竟誰都可以發(fā)送廣播,誰也可以接收廣播。我們想要的是1對1,就要在在代碼里聲明一對一。
本文原作者 長鳴鳥 ,未經(jīng)同意,轉(zhuǎn)載不帶名的嚴重鄙視。
方案1:指定接收者
發(fā)送方:
AdroidManifest.xml:
+
然后發(fā)送廣播的時候附帶權(quán)限:
sendBroadcast("android.mine.SECRET_CODE", "com.android.permission.RECV_ONLY");
接收方:
AndroidManifest.xml:
+
方案2:指定發(fā)送者
接收方:
AdroidManifest.xml:
+
然后修改接收器:
發(fā)送方:
AdroidManifest.xml:
本文原作者 長鳴鳥 ,未經(jīng)同意,轉(zhuǎn)載不帶名的嚴重鄙視。
Enjoy it!
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/65015.html
摘要:作為的四大組件之二,其應(yīng)用場景非常多。作用可以監(jiān)聽或接收應(yīng)用或系統(tǒng)發(fā)出的廣播消息,并做出響應(yīng)。可以指定獨立的進程四大組件都可以通過此屬性指定自己的獨立進程。對于應(yīng)用內(nèi)廣播的動態(tài)注冊方式,回調(diào)中的返回值是。 前言 Hi,大家好,又雙見面啦,上一期我們講了如何使用Activity,肯定有不少小伙伴已經(jīng)創(chuàng)建了屬于自己的FirstActivity,那么這一期我們主要為大家介紹第二個重要組件Br...
摘要:大部分小企業(yè)的運維就是加一些腳本就可以搞定了。極端大型的企業(yè),比如,比如騰訊,百度等,都有一套非常完善和復(fù)雜的運維平臺。做一個這樣的運維平臺是不容易的。 這是一個未經(jīng)驗證的假設(shè),just a dump of my current thought。 大部分小企業(yè)的運維就是 ssh 加一些 fabric 腳本就可以搞定了。極端大型的企業(yè),比如 google twitter,比如騰訊 SN...
摘要:但是,一定會被執(zhí)行,從而保證了廣播在死亡前一定會被注銷,從而防止內(nèi)存泄露。對于應(yīng)用內(nèi)廣播的動態(tài)注冊非方式,回調(diào)中的返回值是 前言 BroadcastReceiver(廣播接收器),屬于Android四大組件之一 在Android開發(fā)中,BroadcastReceiver的應(yīng)用場景非常多 今天,我將詳細講解關(guān)于BroadcastReceiver的一切相關(guān)知識 目錄 showImg(...
閱讀 2032·2021-10-09 09:41
閱讀 1606·2021-09-28 09:36
閱讀 1109·2021-09-26 09:55
閱讀 1299·2021-09-10 11:17
閱讀 1154·2021-09-02 09:56
閱讀 2769·2019-08-30 12:58
閱讀 2938·2019-08-29 13:03
閱讀 1862·2019-08-26 13:40