从android中的widget发起调用

时间:2011-08-25 09:47:42

标签: android android-widget android-intent widget phone-call

是否可以通过按下Android中主屏幕小部件中的按钮来启动呼叫?

我有以下代码,它不起作用,按下按钮不执行任何操作:

public class WidgetTestActivity extends AppWidgetProvider {

        @Override
        public void onEnabled(Context context)
        {
            RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.main);

            String url = "tel:3334444";
            Intent i = new Intent(Intent.ACTION_CALL);
            i.setData(Uri.parse(url));
            PendingIntent call1 = PendingIntent.getBroadcast(context, 0, i, 0);

            remoteViews.setOnClickPendingIntent(R.id.button1, call1);   
        }
}

3 个答案:

答案 0 :(得分:0)

AppWidgetProvider具有方法onRecive(Context context, Intent intent),您可以检查意图操作并执行所需的代码。

@Override
public void onReceive(Context context, Intent intent) {
    super.onReceive(context, intent);

    if(intent.getAction().equals(Intent.ACTION_CALL))
    {
        //DO WHAT YOU WANT
    }
}

答案 1 :(得分:0)

您是否在Android Manifest中指定了CALL_PHONE权限?

http://developer.android.com/reference/android/Manifest.permission.html#CALL_PHONE

答案 2 :(得分:0)

我在接受这个问题的答案中找到了答案:

Answer