
android 用intent拨打电话 为什么不能拨出 电话号码是unknown? 40
android新手遇到点小问题,请求大家帮助~代码就是书上的<LinearLayoutxmlns:android="http://schemas.android.com/...
android新手遇到点小问题,请求大家帮助~
代码就是书上的
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:textColor="@android:color/black"
android:textSize="25px">
<requestFocus />
</EditText>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拨打电话"
android:textColor="@android:color/black"
android:textSize="25px"/>
</LinearLayout>
Activity的是
package com.callbyintent;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText numberTV=(EditText)findViewById(R.id.editText1);
final String number=numberTV.getText().toString();
Button dial=(Button)findViewById(R.id.button);
dial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
startActivity(intent);
}
});
}
}
权限也加了
如果把 intent.setData(Uri.parse("tel:"+number));改称 intent.setData(Uri.parse("tel://10086));
或者final String number=numberTV.getText().toString();改称final String number=“10086”;
就都一切正常
如果按照原来代码运行 不显示拨号界面 看通话记录就是unknown
感觉就是EditText不识别输入的数字,这是什么原因? 展开
代码就是书上的
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:textColor="@android:color/black"
android:textSize="25px">
<requestFocus />
</EditText>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="拨打电话"
android:textColor="@android:color/black"
android:textSize="25px"/>
</LinearLayout>
Activity的是
package com.callbyintent;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
EditText numberTV=(EditText)findViewById(R.id.editText1);
final String number=numberTV.getText().toString();
Button dial=(Button)findViewById(R.id.button);
dial.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:"+number));
startActivity(intent);
}
});
}
}
权限也加了
如果把 intent.setData(Uri.parse("tel:"+number));改称 intent.setData(Uri.parse("tel://10086));
或者final String number=numberTV.getText().toString();改称final String number=“10086”;
就都一切正常
如果按照原来代码运行 不显示拨号界面 看通话记录就是unknown
感觉就是EditText不识别输入的数字,这是什么原因? 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏40(财富值+成长值)
展开全部
把String number=numberTV.getText().toString();写在onclick方法里,放在intent.setData方法的前面。
因为number在onCreate()方法里面直接toString的话EditText是空的,当然number就是空值,你传到拨号里也是空
因为number在onCreate()方法里面直接toString的话EditText是空的,当然number就是空值,你传到拨号里也是空
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-04-03
展开全部
我也做过类似的程序,你试试这样,应该能改对。
Uri callUri = Uri. parse ( "tel:10086" );改成
Uri callUri = Uri. parse ( "tel://10086" );
Uri callUri = Uri. parse ( "tel:10086" );改成
Uri callUri = Uri. parse ( "tel://10086" );
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询