Android- Stop Telephony Manager service -


actually new android developer , having stop button in activity class , want stop telephony service not record call after stop button clicked not stoping service , itis recording call. please resolve problem

my activity class is

package com.jain.callrecorderdemo; import android.app.activity; import android.content.intent; import android.os.bundle; import android.view.view; import android.view.view.onclicklistener; import android.widget.button; public class mainactivity extends activity { button startbtn, stopbtn; @override protected void oncreate(bundle savedinstancestate) {     setcontentview(r.layout.main);     super.oncreate(savedinstancestate);     startbtn = (button) findviewbyid(r.id.startbtnid);     stopbtn = (button) findviewbyid(r.id.stopbtnid);     startbtn.setonclicklistener(new onclicklistener() {          @override         public void onclick(view v) {             intent in = new intent(getapplicationcontext(), callrecordingservice.class);             startservice(in);          }     });     stopbtn.setonclicklistener(new onclicklistener() {          @override         public void onclick(view v) {             intent in = new intent(getapplicationcontext(), callrecordingservice.class);             stopservice(in);          }     }); } } 

my callrecorder service

package com.jain.callrecorderdemo; import java.io.file; import java.io.ioexception; import android.app.service; import android.content.intent; import android.media.mediarecorder; import android.os.environment; import android.os.ibinder; import android.preference.preferencemanager.onactivitystoplistener; import android.telephony.phonestatelistener; import android.telephony.telephonymanager; import android.widget.toast;  public class callrecordingservice extends service{  telephonymanager tm; mediarecorder mr; static int x=0; int id; @override public ibinder onbind(intent intent) {     // todo auto-generated method stub     return null; }   @override public int onstartcommand(intent intent, int flags, int startid) {     id=startid;     tm=(telephonymanager) getsystemservice(telephony_service);     tm.listen(new myphonelistener(), phonestatelistener.listen_call_state);     return super.onstartcommand(intent, flags, startid); } @override public void ondestroy() {  toast.maketext(getapplicationcontext(), "call recorder off", toast.length_long).show();      super.ondestroy(); }   class myphonelistener extends phonestatelistener {     @override     public void oncallstatechanged(int state, string incomingnumber) {         super.oncallstatechanged(state, incomingnumber);         switch (state) {         case telephonymanager.call_state_idle:             toast.maketext(getapplicationcontext(), "idle", toast.length_long).show();             try {                 mr.release();                } catch (exception e) {                 toast.maketext(getapplicationcontext(), e.tostring(), toast.length_long).show();             }              break;          case telephonymanager.call_state_ringing:             toast.maketext(getapplicationcontext(), "ringing", toast.length_long).show();             break;          case telephonymanager.call_state_offhook:             toast.maketext(getapplicationcontext(), "offhook", toast.length_long).show();             try {                 mr=new mediarecorder();                 mr.setaudiosource(mediarecorder.audiosource.mic);                 mr.setoutputformat(mediarecorder.outputformat.mpeg_4);                 mr.setaudioencoder(mediarecorder.audioencoder.default);                 file mysdpath=environment.getexternalstoragedirectory();                 file mydir=new file(mysdpath,"recording_folder");                 if(mydir.exists()==false)                 {                     mydir.mkdir();                 }                 string filepath=mydir.getabsolutepath()+"/recorderfile"+(x++)+".mp3";                 mr.setoutputfile(filepath);                 mr.prepare();                 mr.start();                 toast.maketext(getapplicationcontext(), "recording started", toast.length_long).show();             } catch (illegalstateexception e) {                 toast.maketext(getapplicationcontext(), e.tostring(), toast.length_long).show();                 e.printstacktrace();             } catch (ioexception e) {                 toast.maketext(getapplicationcontext(), e.tostring(), toast.length_long).show();                 e.printstacktrace();             }              break;         }     } } } 

my manifest file is

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.jain.callrecorderdemo" android:versioncode="1" android:versionname="1.0" >  <uses-sdk     android:minsdkversion="7"     android:targetsdkversion="23" /> <uses-permission android:name="android.permission.read_phone_state"/> <uses-permission android:name="android.permission.write_external_storage"/> <uses-permission android:name="android.permission.record_audio"/>  <application     android:allowbackup="true"     android:icon="@drawable/ic_launcher"     android:label="@string/app_name"     android:theme="@style/apptheme" >     <activity android:name="mainactivity">         <intent-filter>             <action android:name="android.intent.action.main"/>             <category android:name="android.intent.category.launcher"/>         </intent-filter>     </activity>     <service android:name="callrecordingservice"></service> </application>  </manifest> 

you can use listen_none parameter stop listening updates.

telephonymanager.listen(phonestatelistener, phonestatelistener.listen_none ); 

hope you, thanks.


Comments

Popular posts from this blog

java - Run spring boot application error: Cannot instantiate interface org.springframework.context.ApplicationListener -

reactjs - React router and this.props.children - how to pass state to this.props.children -

Excel VBA "Microsoft Windows Common Controls 6.0 (SP6)" Location Changes -