在这里,我们将给大家分享关于单击应用程序图标后,需要在android应用程序中还原相同的视图的知识,让您更了解单击桌面上的应用程序图标可以运行该程序的本质,同时也会涉及到如何更有效地android–不
在这里,我们将给大家分享关于单击应用程序图标后,需要在android应用程序中还原相同的视图的知识,让您更了解单击桌面上的应用程序图标可以运行该程序的本质,同时也会涉及到如何更有效地android – 不要在最近的应用程序中显示我的应用程序、Android – 如何通过单击应用程序图标来执行项目的主要功能?、android – 如果联系人与电话通讯簿中的应用程序相关联,则显示应用程序图标、android – 有没有办法动态更改日历应用程序的应用程序图标呢?的内容。
本文目录一览:- 单击应用程序图标后,需要在android应用程序中还原相同的视图(单击桌面上的应用程序图标可以运行该程序)
- android – 不要在最近的应用程序中显示我的应用程序
- Android – 如何通过单击应用程序图标来执行项目的主要功能?
- android – 如果联系人与电话通讯簿中的应用程序相关联,则显示应用程序图标
- android – 有没有办法动态更改日历应用程序的应用程序图标呢?
单击应用程序图标后,需要在android应用程序中还原相同的视图(单击桌面上的应用程序图标可以运行该程序)
我是android开发的新手.我正在开发一个Android应用程序,其中有很少的视图,例如登录视图,视图A,视图B,视图C和视图D等.
我的初始视图是登录视图.用户输入其凭据,如果它们有效,则将显示视图A(针对特定用户角色).
现在,用户单击电话主页按钮,现在我的应用程序正在后台模式下运行.
当用户单击我的应用程序图标时,它将显示登录视图.但实际上我需要显示视图A.
为什么会这样呢?我找不到任何错误堆栈跟踪.谁能建议我做错了什么.
谢谢.
解决方法:
备份应用程序后,将再次调用onCreate.如果要保存状态,则应使用SharedPreferences并将其保存在onPause中.然后在onResume中调用它们.
android – 不要在最近的应用程序中显示我的应用程序
我的目的是:
user禁用运行我的应用程序
我很抱歉发言不好.
解决方法
对于你的每个活动android:excludeFromrecents =“true”
<activity android:name=".Activity" android:excludeFromrecents="true" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
有关更多信息,请参阅此doc
Android – 如何通过单击应用程序图标来执行项目的主要功能?
换句话说,没有布局没有小部件只是它的工作.
用户单击图标后,应立即执行其主要功能.我想到的一种方法是将所有代码放在onCreate函数中.
或者,如果有任何其他方式,请与我分享.
解决方法
然而.
拥有一个应用程序图标,当用户触摸它时什么都不做是一种非常糟糕的体验.我强烈建议不要这样做.您不应该在您的应用中有一个主要条目,实际上没有启动应用程序.我可以向您保证,这样做会导致您的应用评级降低,因为人们不了解您的应用. (特别是如果这实际上是你的应用程序的主要活动,因为他们将在市场上点击“打开”按钮,它将什么也不做.Shcktastic.)
我不知道你在做什么,但是用户从主屏幕按下的按钮通常应该用小部件来实现,比如电源小部件.这使得用户更清楚地知道发生了什么,特别是从视觉上你可以看起来像他们正在按下的按钮而不是他们正在发布的应用程序.
android – 如果联系人与电话通讯簿中的应用程序相关联,则显示应用程序图标
我正在尝试显示与应用程序关联的电话号码的应用程序图标.
我试图遵循this链接,但这太难了.
有没有这个或任何简单的方法来解决这个问题?
例如,我们可以说联系人存在于电话地址簿中的whatsapp,facebook,google,…中.
同样,我想在这些信使应用程序旁边显示我的应用程序图标.
解决方法:
以下代码显示了可能的解决方案.调用synchronizeContact方法将导致在联系人应用程序中添加链接.
请注意,它不是强大的代码,但它显示了这个想法并且正在运行.
另请注意,以下两个POJO类特定于我的实现,对于联系人链接的工作不是必不可少的:PhoneNumber,ContactInfo.
MainActivity.java:
private void synchronizeContact(ContactInfo contactInfo)
{
ContactsSyncAdapterService syncAdapter = new ContactsSyncAdapterService();
Account account = new Account(contactInfo.getdisplayName(), getString(R.string.account_type)); //account_type = <yourpackage>.account
PhoneNumber phoneNumber = contactInfo.getPhoneNumbers().get(0);
syncAdapter.performSync(MainActivity.this, account, phoneNumber);
}
ContactsSyncAdapterService:
private static ContentResolver itsContentResolver = null;
public void performSync(Context context, Account account, PhoneNumber number)
{
itsContentResolver = context.getContentResolver();
addContact(account, account.name, account.name, number.getNumber());
}
private void addContact(Account account, String name, String username, String number)
{
ArrayList<ContentProviderOperation> operationList = new ArrayList<ContentProviderOperation>();
ContentProviderOperation.Builder builder = ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);
builder.withValue(RawContacts.ACCOUNT_NAME, account.name);
builder.withValue(RawContacts.ACCOUNT_TYPE, account.type);
builder.withValue(RawContacts.SYNC1, username);
operationList.add(builder.build());
builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
builder.withValueBackReference(ContactsContract.CommonDataKinds.Structuredname.RAW_CONTACT_ID, 0);
builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Structuredname.CONTENT_ITEM_TYPE);
builder.withValue(ContactsContract.CommonDataKinds.Structuredname.disPLAY_NAME, name);
operationList.add(builder.build());
builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI);
builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0);
builder.withValue(ContactsContract.Data.MIMETYPE, "vnd.android.cursor.item/vnd.<yourpackage>.profile");
builder.withValue(ContactsContract.Data.DATA1, username);
builder.withValue(ContactsContract.Data.DATA2, number);
operationList.add(builder.build());
try
{
itsContentResolver.applyBatch(ContactsContract.AUTHORITY, operationList);
}
catch (OperationApplicationException e)
{
e.printstacktrace();
}
catch (remoteexception e)
{
e.printstacktrace();
}
}
ProfileActivity(点按联系人应用链接时的意图类):
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.profile);
Uri intentData = getIntent().getData();
if (isNotEmpty(intentData))
{
Cursor cursor = managedQuery(intentData, null, null, null, null);
if (cursor.movetoNext())
{
String username = cursor.getString(cursor.getColumnIndex("DATA1"));
String number = cursor.getString(cursor.getColumnIndex("DATA2"));
TextView view = (TextView) findViewById(R.id.profiletext);
view.setText("<yourtext>");
doSomething(getPhoneNumber(number));
}
}
else
{
handleIntentWithoutData();
}
}
private void doSomething(PhoneNumber phoneNumber)
{
Uri uri = Uri.parse("tel:" + phoneNumber.getNumber());
Intent intent = new Intent(Intent.ACTION_CALL, uri);
startActivity(intent);
}
contacts.xml:
<?xml version="1.0" encoding="utf-8"?>
<ContactsSource xmlns:android="http://schemas.android.com/apk/res/android">
<ContactsDataKind
android:icon="@drawable/ic_launcher"
android:mimeType="vnd.android.cursor.item/vnd.<yourpackage>.profile"
android:summaryColumn="data2"
android:detailColumn="data3"
android:detailSocialSummary="true"
/>
authenticator.xml:
<?xml version="1.0" encoding="utf-8"?>
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="<yourpackage>.account"
android:icon="@drawable/ic_launcher"
android:smallIcon="@drawable/ic_launcher"
android:label="@string/app_name"
android:accountPreferences="@xml/account_preferences"
/>
account_preferences.xml:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
</PreferenceScreen>
sync_contacts.xml:
<?xml version="1.0" encoding="utf-8"?>
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="com.android.contacts"
android:accountType="<yourpackage>.account"
android:supportsuploading="false"
/>
电话号码:
private String number;
public String getNumber()
{
return number;
}
public void setNumber(String number)
{
this.number = number;
}
的ContactInfo:
private List<PhoneNumber> itsPhoneNumbers = new ArrayList<PhoneNumber>();
public void setdisplayName(String displayName)
{
this.itsdisplayName = displayName;
}
public String getdisplayName()
{
return itsdisplayName;
}
public void addPhoneNumber(PhoneNumber phoneNumber)
{
this.itsPhoneNumbers.add(phoneNumber);
}
public List<PhoneNumber> getPhoneNumbers()
{
return itsPhoneNumbers;
}
android – 有没有办法动态更改日历应用程序的应用程序图标呢?
日历会更改每天显示某月份数字的图标.还有一个闹钟应用程序可以更改其图标设置当前时间,换句话说,每分钟更改一次.
这不是一个小部件,而是一个真正的应用程序图标.然后它必须有办法这样做.我怎么能在我的应用程序中执行此操作?
解决方法
What do you mean by hooks?
例如,三星可以在三星设备上发布三星日历应用程序.三星在同一台三星设备上的主屏幕可以为三星日历应用程序呈现图标的特殊规则,这些规则涉及显示当月的日期.这是因为三星写了主屏幕.如果您安装第三方主屏幕,它可能不会做同样的事情.毕竟,我可以在一个小时左右的时间内写一个主屏幕,我觉得我不必为三星的日历应用做任何特别的事情.
没有什么可以阻止三星暴露某种API以允许开发人员挂钩三星的主屏幕并通知它这类事情.三星是否打算让第三方使用该API,或者是否有人侵入三星如何为自己的应用程序做这件事,我不能说.
(顺便说一句,我在这里引用三星作为一个可能的例子 – 我不知道他们实际上有这种功能,如果是这样,他们有哪些设备)
我似乎记得有人有一个GitHub项目试图包装各种主屏幕的专有API. IIRC,一些支持的功能包括替换应用程序图标或添加徽章(例如,未读消息计数).然而:
>只有一小部分设备支持这些专有API
>通过逆向工程应用程序发现的未记录和不受支持的API可能会发生变化,并可能以意想不到的方式中断
我非常确定Android SDK中没有任何内容支持动态应用程序图标.我所知道的唯一一件事就是人们尝试过,使用< activity-alias>有N个不同的“活动”,都指向相同的实现,但有不同的图标.使用PackageManager和setComponentEnabledSetting(),该应用程序禁用旧的启动器别名并启用另一个别名,希望主屏幕将在此处显示并显示新图标.一些.其他人只会发现重启时的变化.
为了解决问题,我可以写一个主屏幕.也许我想为应用程序提供一些动态更改图标的方法,即使它没有标准.也许我没有.也许我根本不想使用图标,因为我的主屏幕针对视障人士进行了优化,因此它使用文本到语音和硬件键输入.这是我的主屏幕实现,我可以做我想要的.
今天关于单击应用程序图标后,需要在android应用程序中还原相同的视图和单击桌面上的应用程序图标可以运行该程序的分享就到这里,希望大家有所收获,若想了解更多关于android – 不要在最近的应用程序中显示我的应用程序、Android – 如何通过单击应用程序图标来执行项目的主要功能?、android – 如果联系人与电话通讯簿中的应用程序相关联,则显示应用程序图标、android – 有没有办法动态更改日历应用程序的应用程序图标呢?等相关知识,可以在本站进行查询。
本文标签: