我正在尝试创建一个简单的拨号盘。我创建了所有这些,现在我喜欢从其他应用程序接收动作拨号意图。
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:xxxxxx="XXXXXX" />
</intent-filter>
现在我不知道应该用动作过滤器中的数据填充什么。 谁能帮我 ? 提前谢谢。
答案 0 :(得分:4)
这是应该使用的意图过滤器。
<intent-filter>
<action android:name="android.intent.action.CALL_DIAL" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
我们可以像这样从onCreate
方法中读取电话号码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//start reading here
Intent intent = getIntent();
if(intent.getData()!=null){
Log.d("intent received",intent.getData().toString());
String phoneNumber = intent.getData().toString(); //contains tel:phone_no
phoneNumber = phoneNumber.substring(4);
Log.d("intent received","Received phone number : "+phoneNumber);
/// do what you like here
}else{
Log.d("intent received","null intent received");
}
}
答案 1 :(得分:2)
接受的答案对我不起作用。经过一些搜索,我从https://github.com/jdunck/Examples/blob/master/SimpleDialer/AndroidManifest.xml
中找到了这个例子<activity android:name=".DialerActivity" android:label="@string/title_dialer">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL_BUTTON" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="vnd.android.cursor.dir/calls" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tel" />
</intent-filter>
</activity>
这对我来说很好。
答案 2 :(得分:0)
<intent-filter>
<action android:name="android.intent.action.CALL" />
<data android:scheme="tel" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.CALL_PRIVILEGED" />
</intent-filter>
在java中
Uri number = Uri.parse("tel:" + edit_text_number);
Intent i = new Intent(Intent.ACTION_DIAL, number);
startActivity(i);
答案 3 :(得分:0)
您必须添加这些意图过滤器 -
<intent-filter>
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
最重要的是,添加权限 -
<uses-permission android:name="android.permission.CALL_PHONE" />
干杯:)