意图

意图是Android 四大组件(Activity,Service,content provider,broadcast receiver)的核心

AirSctipt中我们提供了一个继承 android.content.Intent 的意图.

在拓展Android意图的同时,又继承了android.content.Intent 的方法,我们可以利用 Python 与 Android混编,编写各种意图功能.

启动APP

# 导包
from airscript.intent import Intent 

Intent

# 案例1:使用应用名称启动APP,推荐萌新使用
#导包
from airscript.intent import Intent 

# 根据应用名称启动. PS:启动略慢于包名启动
Intent.run("高德地图")
# 案例2:通过包名称,启动APP,推荐高手使用
#导包
from airscript.intent import Intent 

# 根据包名启动,推荐使用
Intent.run("com.autonavi.minimap")

浏览器打开网页

# 导包
from airscript.intent import Intent 

Intent

# 案例:打开AirSctipt 官网
#导包
from airscript.intent import Intent 

# 输入网址,用浏览器打开
Intent.browser("http://www.airscript.cn")

安卓 Intent

# 导包
from airscript.intent import Intent 

此Intent 继承自 android.content.Intent

接下来我们将用混编完成意图代码编写

android.content.Intent

详细属性方法请查阅Android Intentopen in new window

也可以百度Android Intent 相关用法.

案例:发短信

#导包
from airscript.intent import Intent 
from airscript.system import R

it =  Intent(Intent.ACTION_VIEW) 
it.putExtra('sms_body', '你好这是短信内容');
it.setType('vnd.android-dir/mms-sms');

# 部分Activity 启动需要一个新的TASK ,通常都固定写这一行代码
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
R.context().startActivity(it);


案例:抖音直播间跳转

# 通过 房间ID 跳转抖音直播间

# 导包
from airscript.intent import Intent 
from airscript.system import R
from android.net import Uri

roomid = '6901450157649300232'
uri = Uri.parse("snssdk1128://live?room_id="+roomid);
it =  Intent(Intent.ACTION_VIEW,uri) 
it.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
R.context().startActivity(it);

案例:跳转应用详情


from airscript.intent import Intent 
from airscript.system import R
from android.net import Uri
from android.provider import Settings

# 根据需求改变包名,即可跳转,跳转后,可点击停止程序等等.
intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).setData(Uri.fromParts("package", "com.aojoy.airscript", None))
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
R.context().startActivity(intent);

案例:跳转设置界面

from airscript.intent import Intent 
from android.content import ComponentName
from airscript.system import R

intent = Intent()
package = "com.android.settings"
activity = "com.android.settings.Settings"
componentName = ComponentName(package, activity)
intent.setComponent(componentName)
intent.setAction("android.intent.action.VIEW");

# 这是固定的启动方法
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
R.context().startActivity(intent);
更新日期:
Contributors: 自在