簡體   English   中英

從廣播接收器調用活動

[英]Invoking an activity from Broadcast Receiver

我是android的初學者,我正在開發一個應用程序,只要用戶打個電話,BrocastReceiver就會啟動...我試圖監視廣播接收器內部的網絡狀態...並且我試圖當用戶啟動活動掛斷電話...但不幸的是它給了我一個錯誤...請讓我知道如何執行此操作...

當用戶撥打電話時,我的廣播接收器可以正常啟動...但是當用戶通話時,我不知道如何監視BroadcastReceiver內部的網絡..當用戶掛斷電話時,如何從BroadcastReceiver調用活動。 ..

請讓我知道如何實現這一目標...預先感謝.. :-)

我的代碼...

  1. 廣播接收器代碼

      public class MoniterNetworkStatus extends BroadcastReceiver{ private ConnectivityManager connectivityManager; private NetworkInfo info; @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Monitering Network Status !!!", Toast.LENGTH_LONG).show(); boolean networkStatus = false; TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); Intent activityIntent = new Intent(context, NetworkStatusActivity.class); // I am monitoring the network status as long as user is on call... while(telephonyManager.getCallState()!= TelephonyManager.CALL_STATE_IDLE){ info = connectivityManager.getActiveNetworkInfo(); if(info == null){ networkStatus = false; }else if(info.getType() == ConnectivityManager.TYPE_MOBILE){ networkStatus = info.isConnected(); }else{ networkStatus = false; } } //Putting the network details in to the activity. activityIntent.putExtra("operatorName", telephonyManager.getNetworkOperatorName()); activityIntent.putExtra("networkStatus", networkStatus); // starting the activity context.startActivity(activityIntent); abortBroadcast(); } } 

    我的清單文件

     <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" /> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <!-- <uses-permission android:name="android.permission.INTERNET"/> --> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.abc.activity.NetworkStatusActivity"></activity> <receiver android:name="com.abc.broadcastreceiver.MoniterNetworkStatus" android:enabled="true" > <intent-filter> <action android:name="android.intent.action.NEW_OUTGOING_CALL" /> <action android:name="android.intent.action.ANSWER" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver> </application> 

當用戶撥打電話時,我的廣播接收器會正常啟動...但是當用戶通話時,我不知道如何監視網絡..當用戶掛斷電話時,我將如何調用活動...

請讓我知道如何實現這一目標...預先感謝.. :-)

您需要注冊其他接收者才能接受ACTION_PHONE_STATE_CHANGED。 這可能是在Android檢測到去電和電話掛斷事件的重復項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM