谁会用Android的Widget如题我想在开发个应用程序,实现的大概是屏幕上有两个类似于按钮的东西,点一个会给一
谁会用Android的Widget
如题
我想在开发个应用程序,实现的大概是屏幕上有两个类似于按钮的东西,点一个会给一个号打电话,点另外一个会给另外一个号号打电话
我查了很多Widget的资料,但都没怎么看懂,另外我看他们都是在获取某些信息,我不知道我的需求能否用Widget来实现。
有了解的吗, 能否给解答下。。。谢谢拉!
Java code try { String inputStr = text.getText().toString(); if (PhoneNumberUtils.isGlobalPhoneNumber(inputStr)) { Intent myIntentDial = new Intent(Intent.ACTION_CALL, Uri .parse("tel://" + inputStr));// 直接拨打电话 startActivity(myIntentDial); text.setText(""); } else { text.setText(""); Toast.makeText(CallTest.this, "电话格式不对", Toast.LENGTH_LONG) .show(); } } catch (Exception e) { // TODO: handle exception System.out.println(e.getMessage()); }
以上是打电话的代码
下面是打电话时需要的权限
Java code <uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
有了解的吗,麻烦告诉下。。谢谢啦!
[解决办法] 这是一个用widget实现的窗口小部件例子:实现两个按钮,点第一个直接拨号110,点第二个调用拨号窗口。(例子木有涉及service,broadcastreceiver)
1.配置main.xml。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:id="@+id/button1" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="电话1"></Button>
<Button android:id="@+id/button2" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="电话2"></Button>
</LinearLayout>
2.在res目录建xml目录,在xml目录建文件hello.xml。
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="72dip" android:minHeight="72dip"
android:initialLayout="@layout/main" />
3.类MyApp.java继承AppWidgetProvider
public class MyApp extends AppWidgetProvider {
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
// TODO Auto-generated method stub
System.out.println("onUpdate");
RemoteViews remoteViews = new RemoteViews(context.getPackageName(),
R.layout.main);
ComponentName componentName = new ComponentName(context, MyApp.class);
Intent myIntentDial = new Intent("android.intent.action.CALL", Uri.parse("tel://"
+ "110"));// 直接拨打电话
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
myIntentDial, 0);
Intent myIntentDial2 = new Intent("android.intent.action.CALL_BUTTON");
PendingIntent pendingIntent2 = PendingIntent.getActivity(context, 0,
myIntentDial2, 0);
remoteViews.setOnClickPendingIntent(R.id.button1, pendingIntent);
remoteViews.setOnClickPendingIntent(R.id.button2, pendingIntent2);
// AppWidgetManager manager = AppWidgetManager.getInstance(this);
appWidgetManager.updateAppWidget(componentName, remoteViews);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}
4.配置AndroidManifest.xml。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="comm.cn" android:versionCode="1" android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permisson.RECEIVE_SMS"></uses-permission>
<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".MyApp" android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
</intent-filter>
<meta-data android:resource="@xml/hello" android:name="android.appwidget.provider"></meta-data>
</receiver>
</application>
</manifest>