2013-07-16 23 views
1

我需要在后台调用我的应用程序,所以当用户点击一个按钮时,它应该开始在后台调用,用户会知道他在调用,但他不会看到拨号程序,他会看到应用程序,在调用时重现声音。INTENT.ACTION_CALL在后台

所以基本上我想要的是拨打电话,而不活动的出口

我与服务tryed但它不工作

Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setData(Uri.parse("tel:123456789")); 
startService (callIntent); 

对不起我的英语

+1

你不能做到这一点 – tasomaniac

回答

1

试试这个:

Intent callIntent = new Intent(Intent.ACTION_CALL); 
callIntent.setData(Uri.parse("tel:123456789")); 
startActivity(callIntent); 

* 注意startActivity(callIntent),而不是startService(callIntent);

您也可以试用ACTION_DIAL而不是ACTION_CALL。您还需要这个权限,但应用程序标记之前将其放置在AndroidManifest

<uses-permission android:name="android.permission.CALL_PHONE" /> 
+1

THX的答案,但我知道这一点,我想是这样做的背景 – D4rWiNS

+0

是的,但有做手机没有别的办法电话,它是这样设计的。所以如果你想打个电话,你可以用一个'Intent'来实现,这就开启了另一个活动。 – g00dy

1

代码背后:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    call(); 
} 

private void call() { 
    try { 
     Intent callIntent = new Intent(Intent.ACTION_CALL); 
     callIntent.setData(Uri.parse("tel:123456789")); 
     startActivity(callIntent); 
    } catch (ActivityNotFoundException e) { 
     Log.e("sample call in android", "Call failed", e); 
    } 
} 

的Manifest.xml
添加..

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission> 

<uses-permission android:name="android.permission.CALL_PRIVILEGED"></uses-permission> 

编辑: 好,tasomaniac作出有关现有当前活动其中OP也想好点。

所以基本上我想要的是打电话没有退出活动

但它是不可能做到在电话接口的呼叫状态在任何可能的android.One很好的解决办法是PhoneStateListener看到,在通话结束后继续使用当前的activity.Some很好的解决方案进行了描述。 。

+0

这将退出当前活动。 – tasomaniac

+0

确实,这会退出当前活动,并且我看到一个应用程序在后台拨打电话,因此有可能 – D4rWiNS

+0

您尝试了我编辑的内容吗? – ridoy