android解鎖監聽
『壹』 android中多個按鈕用一個監聽器監聽怎麼寫,求具體的代碼,謝謝。
1、先申明一個監聽對象
2、不同按鈕設置同一個監聽對象
3、監聽中,通過按鈕的id判斷是哪個按鈕的點擊事件
代碼如下
1、new監聽
OnClickListener clickListener = new OnClickListener(){
@Override
public void onClick(View v) {
if (v.getId()==R.id.button1){//按鈕1
}else if(v.getId()==R.id.button2}{//按鈕2
}
}
2、設置監聽
Button btn1 = (Button)findViewById(R.id.button1);
Button btn2 = (Button)findViewById(R.id.button1);
btn1.setOnClickListener(clickListener);
btn2.setOnClickListener(clickListener);
『貳』 android5.0如何監聽開機
總而言之:要想獲得開機廣播,你必須在保證兩點,1)你的應用程序在安裝後必須運行一次;2)你的應用程序沒有被強行停止
那麼如果要實現開機自啟動服務,該怎麼實現?直接上源碼
1、BootCompletedReceiver.java文件
public class BootCompletedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.d("LibraryTestActivity", "recevie boot completed ... ");
context.startService(new Intent(context, TestService.class));
}
}
配置文件中:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver android:name=".BootCompletedReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
注意,一定要加上許可權,否則就收不到廣播咯。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
3、安裝應用到你的手機後,啟動一次該應用,那麼下次開機就能收到BOOT_COMPLETED廣播,並且就能看到TestService服務啟動了。
做了個測試:到設置??>應用程序,找到剛才安裝的應用,點擊「強行停止」,那麼重啟手機後,就收不到BOOT_COMPLETED廣播了。
如果該應用被有些三方安全軟體強制殺掉進程後,重啟手機也會收不到BOOT_COMPLETED廣播。
『叄』 Android實踐6 | 實現Button的監聽
按鈕是最常用的控制項,通過onClick方法可以實現單擊按鈕後產生一定的操作。可以傳遞intent,也可顯示提示信息。
1、學會重載setOnClickListener方法,進行按鈕的監聽處理
2、Toast的使用
1、單按鈕監聽
1)、在按鈕所屬的父Activity里,創建按鈕變數
private Button mBtnTextView;
2)、在onCreate方法內部,變數關聯資源id
mBtnTextView = (Button) findViewById(R.id.btn_tv);
3)、在onCreate方法內部,設置setOnClickListener
2、多按鈕監聽
1)、在按鈕所屬的父Activity里,創建多個按鈕變數,和Intent變數
2)、在onCreate方法內部,變數關聯資源id
3)、在onCreate方法內部,設置setOnClickListener
4),在按鈕所屬的父Activity里,創建公共的ButtonListener監聽類
可通過傳入Button的Id switch語句進行選擇 進行監聽 實現不同的操作
要點:
1、findViewById方法關聯資源里的按鈕id。
2、重載View.OnClickListener方法。
3、使用的單擊後啟動操作都在onClick方法里。
getId()方法取得按鈕的id,確定是那一個按鈕被單擊。
4、Toast英文含義是吐司,在Android中,它就像烘烤機里做好的吐司彈出來,並持續一小段時間後慢慢消失。
1)、makeText方法
2)、show()方法
如:
『肆』 android開發怎麼監控來電並監聽
實現如下廣播,並且在AndroidManifest中進行注冊
public class PhoneReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("action"+intent.getAction());
//如果是去電
if(intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)){
String phoneNumber = intent
.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Log.d(TAG, "call OUT:" + phoneNumber);
}else{
//查了下android文檔,貌似沒有專門用於接收來電的action,所以,非去電即來電.
//如果我們想要監聽電話的撥打狀況,需要這么幾步 :
* 第一:獲取電話服務管理器TelephonyManager manager = this.getSystemService(TELEPHONY_SERVICE);
* 第二:通過TelephonyManager注冊我們要監聽的電話狀態改變事件。manager.listen(new MyPhoneStateListener(),
* PhoneStateListener.LISTEN_CALL_STATE);這里的PhoneStateListener.LISTEN_CALL_STATE就是我們想要
* 監聽的狀態改變事件,初次之外,還有很多其他事件哦。
* 第三步:通過extends PhoneStateListener來定製自己的規則。將其對象傳遞給第二步作為參數。
* 第四步:這一步很重要,那就是給應用添加許可權。android.permission.READ_PHONE_STATE
TelephonyManager tm = (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE);
tm.listen(listener, PhoneStateListener.LISTEN_CALL_STATE);
//設置一個監聽器
}
}
PhoneStateListener listener=new PhoneStateListener(){
@Override
public void onCallStateChanged(int state, String incomingNumber) {
//注意,方法必須寫在super方法後面,否則incomingNumber無法獲取到值。
super.onCallStateChanged(state, incomingNumber);
switch(state){
case TelephonyManager.CALL_STATE_IDLE:
System.out.println("掛斷");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
System.out.println("接聽");
break;
case TelephonyManager.CALL_STATE_RINGING:
System.out.println("響鈴:來電號碼"+incomingNumber);
//輸出來電號碼
break;
}
}
『伍』 android 編程 按住 按一下 松開 分別如何監聽
分別實現listener並 為按鍵set 相應的listener.
長按是onLongClickListener
短按是onClickListener
放開好像沒有這個介面,那就只能用onTouch了, event.getAction() == MotionEvent.ACTION_UP 就是放手了
『陸』 Android 超簡單實現網路狀態的監聽
我們做項目的時候,不可避免的要做網路狀態的監聽,一般我們都是抽取出一個工具類來實現,比如:
細致的你當然還會再寫一個判斷網路類型的方法,反手再來一個例:
然後就可以在相應的操作前進行判斷網路的判斷:
但是這樣做也有些問題:
接下來就是本文的重點,如何通過 NetStatusBus 這個庫來解決以上問題,讓你的網路狀態監聽變得前所未有的簡單粗暴。
到這里就已經結束了,你的所有網路操作已經都可以清晰優雅的在訂閱方法中進行處理了,當然你也可以繼續往下看。
訂閱方法必須填寫一個NetType參數,可以通過NetType的值來判斷當前網路類型。
@NetSubscribe中 netType為可選值,可以設置訂閱的類型,可選值類型如下:
NetType.AUTO
這是默認值,任何網路狀態發生變化,該類型訂閱者都會被回調。同時會傳入NetType參數告知你當前的網路類型,示例如下:
只要當前是由 WIFI 改變引發的網路狀態變化,該類型訂閱者都會被回調。同時會傳入NetType參數告知你當前的網路類型,示例如下:
只要當前是由移動網路改變引發的網路狀態變化,該類型訂閱者都會被回調。同時會傳入NetType參數告知你當前的網路類型,示例如下:
NetType.NONE
只有當網路丟失時,該類型訂閱者才會被回調。
有人會覺得,我用個庫爽就行了管它的原理干什麼?
你放心,我只是小小的描述一下實現方式。
原理簡單來說,就是在全局初始化的時候就綁定對網路的變化監聽。然後將進行注冊的父類所有的訂閱方法保存至集合中,這里涉及到一些方法的校驗,最後在網路狀態發生改變時利用 Java 反射機制遍歷執行所有訂閱方法。熟悉 EventBus 的小夥伴已經看出來了這里借鑒了一小部分 EventBus 的思想。
回到第一步,那麼具體是如何綁定對網路狀態變化的監聽呢?
以前我們是通過注冊廣播來實現綁定網路變更的監聽,在Android 7.0 以後,Google 基於性能和安全原因對廣播進行了很多限制,比如監聽網路變更的廣播 android.net.conn.CONNECTIVITY_CHANGE 使用靜態注冊的方式則無法生效,而動態注冊的方式雖然可以生效但畢竟不是最優解。
同樣出於性能和安全,以及擁抱變化的角度,最終我們還是使用官方推薦的方式,利用 ConnectivityManager.NetworkCallback 來進行網路變化的監聽,這是在Android 5.0即android api 21推出的API,目前Android 5.0以上的市場佔有率在 85%以上,隨著國內各大廠商正在積極的推進適配普及Android Q,這個比例還會進一步增大,所以個人人認為無需過於擔心低版本適配。
使用的時候出現這個問題是由於少添加了許可權。
Caused by: java.lang.SecurityException: ConnectivityService: Neither user 10513 nor current process has android.permission.ACCESS_NETWORK_STATE.
java.lang.RuntimeException: Unable to create application com.jiyun.wanandroid.WanApplication: java.lang.SecurityException: ConnectivityService: Neither user 10513 nor current process has android.permission.ACCESS_NETWORK_STATE.
加上這幾個許可權就好了:
附上原文地址: https://www.jianshu.com/p/2fea980b3e56
『柒』 android開發密碼解鎖的api
我寫過一個類似於 windows多用戶啟動的 寫了個開頭 實現了開機啟動以及屏蔽各種按鍵,所以lz可以參考一下如何實現應用的開機啟動,這個是要改xml的。
然後解鎖後輸入密碼 沒做過 難道要寫一個service來監聽解鎖么??