2010-03-09 65 views

回答

5

据我所知接收呼叫的应用程序无法修改。 但是,请参阅How to block calls in android获取一些创意建议。

似乎有删除短信的步骤见 How to delete an SMS from the inbox in Android programmatically?

但是,应用程序执行此操作的可能性很大,因为副作用可能很严重。确保你的用户了解这一点! 最好的解决方案恕我直言,将有一个单独的Android构建支持这些儿童安全功能(我认为这是你想用它)。

7

---->对于您的问题,我认为以下将有所帮助。

package android_programmers_guide.PhoneCallReceiver; 
import java.lang.reflect.Method; 
import com.android.internal.telephony.ITelephony; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.telephony.TelephonyManager; 
import android.util.Log; 
import android.widget.Toast; 
public class PhoneCallReceiver extends BroadcastReceiver 
{ 
    Context context = null; 
    private static final String TAG = "THIRI THE WUT YEE"; 
    private ITelephony telephonyService; 
    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
     Log.v(TAG, "Receving...."); 
     TelephonyManager telephony = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); 
     try 
     { 
      Class c = Class.forName(telephony.getClass().getName()); 
      Method m = c.getDeclaredMethod("getITelephony"); 
      m.setAccessible(true); 
      telephonyService = (ITelephony) m.invoke(telephony); 

      Toast tag = Toast.makeText(context, "Call is not allowed in the meeting!!!", Toast.LENGTH_LONG); 
      tag.setDuration(25); 
      tag.show(); 


      telephonyService.silenceRinger(); 
      telephonyService.endCall(); 
     } 
     catch (Exception e) 
     { 
      e.printStackTrace(); 
     } 

} 


} 

----->以下是接口类

package com.android.internal.telephony; 
interface ITelephony 
{ 
    boolean endCall(); 
    void answerRingingCall(); 
    void silenceRinger(); 
} 

---->且相应的清单如下:

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".PhoneCall2" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

     </activity> 
     <receiver android:name=".PhoneCallReceiver"> 
      <intent-filter android:priority="100" > 
       <action android:name="android.intent.action.PHONE_STATE" /> 
      </intent-filter> 
     </receiver> 


    </application> 
    <uses-sdk android:minSdkVersion="3" /> 
    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.CALL_PHONE" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

</manifest> 

--->真的,I”已经在网上找到这个代码 干杯!

+0

似乎是内部API – 2014-09-26 05:15:50

+0

的缺口劈它工作正常。谢谢 – spr 2015-07-20 16:29:29